Comments 15
Есть интерес к генерации XLSX, на сколько у вас проработана работа с графиками? Сейчас некоторые моменты нельзя сделать PHPExcel.
0
XLSX только в планах.
0
Ок, последим за развитием.
0
Несколько месяцев назад передо мной стояла задача формирования реестров операций в формате xlsx. На первой итерации была использована библиотека PHPExcel, но после проверки полученного решения на прогнозируемых объёмах (120 тыс. операций) от использования PHPExcel пришлось отказаться.
Библиотеку PHPExcel можно использовать лишь для небольших шаблонов. При значительном увеличении количества строк начинает проседать производительность (время заполнения шаблона начинает измеряться минутами) и памяти начинает резко не хватать (уже на 10 тыс. операций мы получили превышение 128 Мб).
Согласно требованиям к разрабатываемому ПО в реестре могло быть около 100-200 тыс. операций, поэтому пришлось реализовывать свой шаблонизатор под конкретные задачи с минимальным потреблением памяти. Полученное решение тестировани на 1 млн. операций. Потребление памяти не зависит от количества строк (строки сразу пишутся в файл), производительность существенно выше (если правильно помню, тофайл на 1 млн. строк формировался за пару минут).
Поэтому если будете реализовывать свой генератор xlsx-файлов и хотите избежать проблем с памятью и производительностью, то лучше отказаться от хранения всех данных в памяти при заполнении шаблона и, как следствие, не использовать XSLT.
Библиотеку PHPExcel можно использовать лишь для небольших шаблонов. При значительном увеличении количества строк начинает проседать производительность (время заполнения шаблона начинает измеряться минутами) и памяти начинает резко не хватать (уже на 10 тыс. операций мы получили превышение 128 Мб).
Согласно требованиям к разрабатываемому ПО в реестре могло быть около 100-200 тыс. операций, поэтому пришлось реализовывать свой шаблонизатор под конкретные задачи с минимальным потреблением памяти. Полученное решение тестировани на 1 млн. операций. Потребление памяти не зависит от количества строк (строки сразу пишутся в файл), производительность существенно выше (если правильно помню, тофайл на 1 млн. строк формировался за пару минут).
Поэтому если будете реализовывать свой генератор xlsx-файлов и хотите избежать проблем с памятью и производительностью, то лучше отказаться от хранения всех данных в памяти при заполнении шаблона и, как следствие, не использовать XSLT.
0
А есть отчет по скорости?
Делал экспорт прайслиста с помощью PHPword через шаблоны — документ из 50 строк таблицы создавался 2 минуты!
O_o
И можно ли вставлять в шаблон картинки?
Делал экспорт прайслиста с помощью PHPword через шаблоны — документ из 50 строк таблицы создавался 2 минуты!
O_o
И можно ли вставлять в шаблон картинки?
0
Cпасибо, заstarил на github.
0
Основную проблему представляют разбитые на отрывки (они же «run», представлены нодами <w:r/>) параграфы, содержимое Тэгов разбивается на несколько нод и в таком виде их обработать не получится.
и все-таки вариант есть :) — через RTF формат. Сам делал шаблонизатор через WORD. Вот пример шаблона для вывода 2-х таблиц:
Если интересно — пишите, с удовольствием поделюсь идеей…
0
Интересный подход (в своём велосипеде «переменные» обрабатывал сразу после нахождения), но, ИМХО, для практического использования не хватает условий (при их реализации начинается самое интересное :))
0
gist.github.com/ya-est/e741bec6db04b22ddddd
В своем время написал свой «велосипед» для генерации DOCx в 100 строчек (вместе с комментариями и возможностью расширения для «особых нужд»). Проблем никаких не было.
Принцип работы:
Открыть docx как архив, заменить текст регуляркой в файле word/document.xml, обновить файл и создать новый архив.
В своем время написал свой «велосипед» для генерации DOCx в 100 строчек (вместе с комментариями и возможностью расширения для «особых нужд»). Проблем никаких не было.
Принцип работы:
Открыть docx как архив, заменить текст регуляркой в файле word/document.xml, обновить файл и создать новый архив.
0
Еще есть OpenTBS
0
github.com/PHPOffice/PHPWord не смотрели?
0
UFO just landed and posted this here
Sign up to leave a comment.
Articles
Change theme settings
PHPStamp — честная генерация DOCX документов из шаблона