пятница, 1 февраля 2019 г.

PHPExcel опять проблемы с чтением файла

Так уж получилось, что до сих пор пользуюсь закопанным проектом PHPExcel

И сегодня пилю импортер под непонятного поставщика, файл xlsx, если его пересохранить в офисе, то нормально читается, а исходный же файл не читается, выдает вот такую ошибку

Fatal error: Uncaught PHPExcel_Exception: Cell coordinate can not be zero-length string in PHPEXCEL/PHPExcel/Cell.php:591

Ну полез я по цепочке вызовов, понял что в какой то момент идет вызов
PHPExcel_Cell::coordinateFromString($r)
где $r - пустая строка...

В файле PHPExcel/Reader/Excel2007.php на 818 строке находим строку с получением координат, перед ней дописываем строчку 

if ($r=="") continue;

 Получаем в итоге такое










Данные читаются вполне идеально, просто видимо генератор этого файла у поставщика дал сбой и дописал данные, которые не имеют ячейки, с таким фиксом левые ячейки без адресов просто отсекаются, оставляя полезные данные... 


Если кому интересна моя пропатченная версия PHPExcel, адекватно читающая и генерирующая разные файлы на PHP7.2 - могу выложить, но так вообще лучше пользоваться продолжением этого проекта - PhpSpreadshee, PHPExcel уже заброшенный проект с кучей недоработок...

Комментариев нет:

Отправить комментарий