Файл PHPExcel не в правильном формате Microsoft Excel 2003 XLS


Я создаю Excell 2003 с помощью PHPExcel 1.8 с помощью этого кода:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('toUploadFtp.xls');

Файл кажется в порядке, и я могу прочитать его с помощью MS Office и LibreOffice.

Но я должен загрузить файл в систему, в которой указано, что формат должен быть отличным 2003, и он выдает следующую ошибку:

Упс! Ваш файл не в правильном формате Microsoft Excel 2003 XLS.

Если я открою файл с помощью LibreOffice и сохраню его снова, я смогу правильно загрузить файл в система.

Есть идеи?

Спасибо,

Author: JokiRuiz, 2014-07-23

4 answers

Создайте свой файл, передав соответствующую версию на завод:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

Надеюсь, это поможет.

 3
Author: mudasobwa, 2014-07-23 14:01:57

Полное непонимание точной проблемы: похоже, это связано с дополнительной передачей файла Excel.

Одна из ошибок часто заключается в том, что PHP-скрипт выводит ложные данные.

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

Сравнение созданных и переданных файлов должно дать представление о том, что пошло не так.

Возможно, вам потребуется настроить содержимое на нетекстовое, чтобы предотвратить некоторые преобразования текста:

header('Content-Type: application/octet'):
 1
Author: Joop Eggen, 2014-07-23 15:20:01

Я думаю, что вы можете решить эту проблему, изменив файл Excel5. Поскольку я не пробовал phpexcel, я мало что знаю об этом..Но я думаю, что вы можете найти решение для этого [здесь].1

 0
Author: Avinash Babu, 2014-07-23 14:10:05

В конце концов я не смог найти решение. Это должна быть какая-то ошибка в формате XLS 2003.

Но я сгенерировал XLSX с помощью $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');, и система распознает его правильно.

 0
Author: JokiRuiz, 2014-07-31 11:28:44