PHPExcel Codeigniter: фатальная ошибка: необработанное исключение 'PHPExcel_Reader_Exception'

1

Я работаю над проектом, в котором мне нужно импортировать данные из файла excel (.xlsx)
в таблицу в базе данных.
Я уже пишу код для контроллера upload.php

    $this->load->library('excel');


    ini_set('memory_limit', '-1');


    $objReader = PHPExcel_IOFactory::createReader('Excel2007');



    $objReader->setReadDataOnly(true);



    $path = $_SERVER['DOCUMENT_ROOT'] . '/bitcoinreports/uploads/data.xlsx';


    $objPHPExcel=$objReader->load($path);


    $objWorksheet = $objPHPExcel->setActiveSheetIndex(0);

    //loop from first data until last data

    for($i=2; $i<=77; $i++){
    $name = $objWorksheet->getCellByColumnAndRow(0,$i)->getValue();
    $email = $objWorksheet->getCellByColumnAndRow(1,$i)->getValue();
    $phone = $objWorksheet->getCellByColumnAndRow(2,$i)->getValue();
    $details = $objWorksheet->getCellByColumnAndRow(3,$i)->getValue();   
    $location = $objWorksheet->getCellByColumnAndRow(4,$i)->getValue();
    $data_user = array(
    "name" => $name,
    "email" => $email ,
    "phone" => $phone ,
    "details" => $details ,
    "location" => $location ,
    );
    $this->dashboard_model->add_data($data_user);
  }

Всякий раз, когда я вызываю этот контроллер, я получил следующую ошибку

Fatal error:  Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open C:/xampp/htdocs/bitcoinreports/uploads/data.xlsx for reading! File does not exist.' in C:\xampp\htdocs\bitcoinreports\application\third_party\PHPExcel\Reader\Excel2007.php:347
Stack trace:
#0 C:\xampp\htdocs\bitcoinreports\application\controllers\admin\upload.php(40): PHPExcel_Reader_Excel2007->load('C:/xampp/htdocs...')
#1 [internal function]: Upload->index()
#2 C:\xampp\htdocs\bitcoinreports\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array)
#3 C:\xampp\htdocs\bitcoinreports\index.php(202): require_once('C:\\xampp\\htdocs...')
#4 {main}
  thrown in C:\xampp\htdocs\bitcoinreports\application\third_party\PHPExcel\Reader\Excel2007.php on line 347

Как решить эту проблему?

  • 2
    Итак, ясная ошибка .. ваш файл data.xlsx не существует по указанному вами пути или недоступен .. Оба варианта возможны, так как я вижу, что он внутри ваших окон C: ..
Теги:
codeigniter
fatal-error
phpexcel

1 ответ

0

Прежде чем открывать файл, проверьте, существует ли он, И читается для процесса, который запускает PHP (xampp в этом случае. Не знаете, как пользователь назван в xampp, возможно, apache).

http://php.net/manual/en/function.is-readable.php

is_readable - указывает, существует ли файл и доступен для чтения

Поэтому замените это:

$objPHPExcel=$objReader->load($path);

с

if (is_readable($path)){
  $objPHPExcel=$objReader->load($path);
} else {
  // handle problem, for example
  echo "cannot read $path";
  exit;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню