Pull to refresh

Comments 14

А по производительности что? Оно не мрет на 1000 строк?
Если вам нужна производительность, вам нужен настоящий Excel, например через COM-объекты.

е нужен. 50к строк мы вполне делаем на php, слава Ктулху, никакого com на линукс-машине для этого не требуется.

На первый взгляд очень круто. Планировал в конце месяца писать свое, необходимо на работе, но попробую использовать ваш.

У нас было так. В Excel есть какой-то формат в виде одного XML-файла, сначала в Excel делаешь пример документа, сохраняешь в этот формат, открываешь в текстовом редакторе, убираешь все лишнее, добавляешь вывод через <?= ... ?>, и рендеришь как обычный HTML-шаблон.

Это обёртка над PhpSpreadsheet. Добавляет возможность задания формата и расположения повторяющихся значений не в коде, а в Excel.
Про сдвиг ячеек вниз, чтобы то что справа не дублировалось: актуальная и классная фича! Лет 10 назад делали шаблонизатор, но по этому моменту ограничиться правилом: если вставляем двумерный массив, справа в шаблоне ничего не должно быть.

А вот вам ещё задачка на проработку: если во вставляемом двумерном массиве слишком много строк, так что при печати получается разбивка на несколько страниц, на каждой странице нужно повторить шапку! Что считать шапкой -отдельный вопрос. Это могут быть не только заголовки таблицы, а вообще произвольный шаблон из нескольких строк.
Это всё можно настроить в файле шаблона. Например, в разделе «Разметка страницы» -> «Печатать заголовки». В открывшемся окне есть поле «сквозные строки» — в нём и выбираем строку (т.е. строку шапки), которая будет повторяться на каждой странице.
Дело в том, что php-библиотека для работы с excel-документами появилась давно, но для неё так до сих пор не придумали шаблонизатор… А всем нам нужна такая библиотека

Под эту библиотеку, может, и не придумали, однако отдельный шаблонизатор под это дело имелся. Я говорю про opentbs — плагин для шаблонизатора tinybutstrong (tbs), который позволяет работать с офисными документами. Это, конечно, тот ещё динозавр, но он работает, работает хорошо, и я рад, что его всё-таки удалось официально подружить с композером :)
Однако шаблонизатора без функции генератора в наше время действительно некоторым не достаточно и Ваши усилия в этом направлении отнюдь не бесполезны.

Хоть tbs пока более гибкий и функциональный в плане шаблонизатора: с его помощью можно выводить не только двумерные массивы, но и массивы в массивах… и в массивах. Т.е. блоки и субблоки в терминологии tbs; также можно и в горизонталь и в вертикаль; повторять при выводе блоков не по одной строчке, а по две и три на запись… указывать условия для отображения прямо в шаблоне; объединять повторяющиеся ячейки (по крайней мере в docx) и.т.д… Но в Вашей библиотеке уже есть кое что, чего в tbs нет и не будет (но это не точно) — и это уже хорошо. Например… (Тут я хотел написать по современный код, но зашёл на гитхаб и увидел комментарии на русском, табы в отступах и не увидел тестов. Наверное это из-за того, что сижу и пишу комментарийс телефона)… корректное размещение соседствующих таблиц без дублирования строк — отличная фишка. Указание стиля ячейки в коде — тоже не плохо, если изначально есть данные, требующие декоративного выражения. В общем, если серьезно подойти, то проект того стоит

Спасибо автору! Очень полезная библиотека!

Столкнулся с проблемой, когда в строках таблицы у нас есть объединенные колонки.

В этом случае новые строки формируются не верно и все съезжает (приложил картинку).

Было бы круто, если бы вы доработали свою библиотеку с учетом этого.

Only those users with full accounts are able to leave comments. Log in, please.

Please pay attention