Задать вопрос
someoneisusingmyusualnick
@someoneisusingmyusualnick

Оптимизация генерации excel из php?

Суть.
Нужно создавать отчет в Excel.
Использую phpexcel.
Со своей задачей он справляется но…
Excel файл надо генерить из созданного сторонним кодом CSV, а потом еще добавить пару вкладок, разукрасить цветами и т.п.
Собственно, используя либу выше все в целом просто.
Но как написано на у них на сайте на 1 ячейку файла надо ~1кб памяти. Сейчас у меня получается уже 1.5гб(выставлял в php.ini соотв-й лимит). В перспективе — данных будет еще больше. На текущем дев сервере всего 3гб оперативы(sic!). И по опыту работы с заказчиком есть подозрение что этот дев сервер, потом станет продакшеном.
Встроенные варианты кеширования в память(мемкеш етк) не подходят по скольку все-равно не хватит памяти.
В последней версии появилось кеширование в SQLite — пробовал, Отчет сгенерился за 70 минут.
Учитывая, что генерация отчетов — корень всего функционала это не приемемо ни разу — надо что бы оно генерило побыстрее еще и для кучи пользователей одновременно.

Оптимизировать в коде особенно нечего — все выполняется быстро, пока не доходит именно до генерации файла.

Есть мысль генерить несколько csv файлов(по одному на вкладку), а потом соединять их exec-ая перловый скрипт — но не знаю есть ли смысл.

Посоветуйте как оптимизировать процесс или может есть другие либы к-е могут это сделать быстрее?
  • Вопрос задан
  • 4586 просмотров
Подписаться 6 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
alexeyshockov
@alexeyshockov
Не уверен по поводу xls, но csv очень просто создавать потоково, по строке.
Ответ написан
smagen
@smagen
Руководитель разработки Postgres Professional
Ещё, как вариант, написать макрос для LibreOffice/OpenOffice, который будет делать конвертацию со всеми необходимыми преобразованиями. Вот есть топик по переводу xls в csv
www.oooforum.org/forum/viewtopic.phtml?t=52942
можно сделать и обратно.
Ответ написан
@softm
Надо клиента «уговаривать» на «ексел» меньшего размера.
Можете указать что за специфика вынгуждает иметь такой большой файл?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы