Библиотека электронных таблиц PHP - PullRequest
0 голосов
/ 18 октября 2010

В настоящее время мы используем библиотеку PHP Spreadsheet_Excel_Writer для создания отчетов на основе листов Excel. Библиотека потребляет много памяти / времени, когда мы пытаемся сгенерировать отчеты, содержащие от 20 до 25 тысяч строк. Часто генерация файла занимает более 20 секунд.

Какие-либо предложения по использованию библиотеки вместо Spreadsheet_excel_writer для обработки больших файлов? Есть идеи, как PHPExcel работает с большими файлами?

1 Ответ

1 голос
/ 18 октября 2010

PHPExcel имеет проблемы с большими файлами, но то же самое делают все библиотеки PHP-таблиц, с которыми я знаком, как с точки зрения памяти, так и с точки зрения производительности. Это область, которая в некоторой степени была решена с помощью кэширования ячеек, что снижает типичные требования к памяти для каждой ячейки с примерно 1 КБ на ячейку до 350 байт на ячейку, хотя и за счет скорости. Однако использование любого из авторов удваивает это требование, поскольку данные для записи создаются в памяти. Мы активно работаем над тем, чтобы уменьшить требования к памяти, не оказывая слишком негативного влияния на скорость выполнения, но при работе с большими объемами данных ведется постоянная борьба.

Гордон указал вам ссылку, ссылающуюся на альтернативы PHPExcel. Лучшее, что я могу предложить, - это посмотреть на все варианты и посмотреть, какие из них соответствуют вашим реальным требованиям с точки зрения возможностей, форматов вывода и т. Д., И принять во внимание, что разработчики PHPExcel активно работают над проблемами памяти и скорости, даже если «оптимальное» решение еще не достигнуто; но будьте готовы увеличить вашу память PHP по мере необходимости.

...