PHPExcel $ objWriter-> save () завершается ошибкой - PullRequest
2 голосов
/ 01 июня 2011

Я создаю файл Excel на основе записей из базы данных с помощью PHPExcel и сталкиваюсь со странной проблемой при создании его на большом наборе данных.Я сузил его до одной строки, вызывающей проблемы:

$objWriter->save('php://output');

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

Важно то, что он отлично работает для меньшего набора данных (меньшего размера).= до 200 строк, больше = до 2000 строк, до 20 столбцов в обоих случаях).Он также отлично работает на другом сервере (разработки) с ТОЧНО ЖЕ, 100% идентичный , большой набор данных.

У меня есть вызов save(), заключенный в try-catch, но нетисключение повышено.Выполнение memory_get_peak_usage() непосредственно перед переходом на save() говорит мне, что оно использует 24 МБ, и у меня ini_set('memory_limit', '-1') ранее в сценарии.Кроме того, мониторинг использования памяти на сервере во время выполнения сценария также не показывает существенного увеличения.

Какие-либо советы по его отладке?

Редактировать: в логах apache нет ошибок, однако я заметил, что соответствующая строка в логах доступа гласит:

10.1.1.1 - - [01/Jun/2011:08:35:03 -0400] "GET /get_excel.php HTTP/1.1" 200 16386

Нечетная часть - последний столбец - размер.Файл, который я загружаю, всегда пуст - ровно 0 бит, а не 16386.

1 Ответ

0 голосов
/ 01 июня 2011

Судя по отзывам, которые вы дали в комментариях, вы не соответствуете всем требованиям. Вы можете найти список требований здесь, на сайте phpexcel .

...