Как загрузить файл Excel с помощью PHPExcel (ошибка с отношениями vml)?

Вопрос прост: как загрузить эту книгу Excel (http://wftda.com/stats/wftda-stats-book.xlsx) с PHP Excel без каких-либо ошибок?

Я использую следующий код (который более или менее соответствует объяснению в документе):

$inputFileType = 'Excel2007';

$inputFileName = path_to/wftda-stats-book.xlsx';

//Create a new Reader of the type defined in $inputFileType
$objReader = PHPExcel_IOFactory::createReader($inputFileType);

//Load $inputFileName to a PHPExcel Object
$objPHPExcel = $objReader->load($inputFileName);

Примерно через 5 секунд лечения я получаю следующие ошибки:

Notice: Trying to get property of non-object in /srv/web/www/dev/arbitrage/_inc/lib/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php on line 1378
Warning: Invalid argument supplied for foreach() in /srv/web/www/dev/arbitrage/_inc/lib/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php on line 1378
Notice: Undefined offset: 0 in /srv/web/www/dev/arbitrage/_inc/lib/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php on line 1394
Fatal error: Call to a member function attributes() on a non-object in /srv/web/www/dev/arbitrage/_inc/lib/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php on line 1396

Часть кода, где лежат ошибки, кажется, связана с отношениями vml, что бы это ни было...


person Silverspur    schedule 03.04.2014    source источник
comment
Похоже на поврежденный файл xlsx... предыдущий блок кода определил, что в этом файле есть изображения, на которые есть ссылки в листе a, но самих изображений в файле нет. Был ли файл создан с помощью MS Excel? И если да, то какая версия?   -  person Mark Baker    schedule 03.04.2014
comment
Я понимаю. К сожалению, я не являюсь автором этого файла, поэтому не могу точно ответить на ваш вопрос, но я уверен, что использовался MS Excel. Какая версия, я не знаю. Решит ли проблему открытие документа в последней версии MS Excel и его сохранение?   -  person Silverspur    schedule 03.04.2014
comment
Это невозможно сказать; каким-то образом есть повреждение данных в файле, который сам MS Excel выглядит так, как будто у него есть запасной вариант, но этот PHPExcel не написан для обработки .... но без тестового файла я точно не знаю, что искать для и не может вводить какую-либо обработку ошибок   -  person Mark Baker    schedule 03.04.2014
comment
Хорошо, поэтому я немного расследую. Есть две проблемы. Во-первых, для каждого чертежа vml не было связанного файла отношений. После добавления недостающих первые два сообщения об ошибках исчезли. Вторая проблема возникает в строках 1392+. Код ищет тег v:imagedata внутри тега v:shape внутри файла чертежа vml. Для некоторых рисунков в моем файле xlsx такого тега не существует. Я не знаю, квалифицируется ли это как повреждение файла или это обычный случай, который не обрабатывается PHPExcel. Не могли бы вы просветить меня в этом?   -  person Silverspur    schedule 15.04.2014


Ответы (1)


Вы должны включить phpexcel библиотеку в папку libary следующим образом:

$this->load->libary('PHPExcel);

скачайте phpexcel и вставьте в папку с библиотекой.

person Supriya Gupta    schedule 09.09.2017