Бухгалтер уже нарисовал бланк счёта в Excel — с логотипом, рамками, форматами и формулами. Не надо повторять это в коде: FastExcelTemplator берёт готовый XLSX как шаблон, подставляет данные в плейсхолдеры и размножает строки таблицы, сохраняя оформление.
Laravel Excel падает по памяти на большом экспорте не из-за вашего кода, а из-за архитектуры PhpSpreadsheet. Разбираем, почему чанки не спасают, и как потоковая выгрузка через cursor() держит память постоянной.
Вам нужен Excel в PHP, и первый же поиск выдаёт PhpSpreadsheet — универсальный, тяжёлый и не всегда подходящий. Разбираем, какие вообще бывают задачи с Excel (чтение, запись, шаблоны) и как понять, какая из них ваша, чтобы не тащить комбайн туда, где хватит отвёртки.
Не успели дописать пост про 4.0, как вышли 4.1 и 4.2. Рассказываем, что нового: теперь Excel::open() сам определяет формат по сигнатуре файла и читает XLSX, XLS и CSV одной строкой — ветвление по расширению больше не нужно.
FastExcelReader 4 читает старый формат XLS (Excel 97–2003) предоставляя тот же набор методов, что и при работе с XLSX, — отдельная библиотека и развилка в коде больше не нужны. Метод withHeader() теперь принимает свои имена колонок, а чтение XLSX ускорилось примерно в полтора раза. Разбираем главные новинки 4-й версии
PhpSpreadsheet тратит сотни мегабайт памяти даже на небольших файлах, а на больших падает вовсе. Если задача — прочитать данные из Excel, а не редактировать книгу, есть инструмент точнее: FastExcelReader читает XLSX и CSV потоком, быстро и почти без роста памяти — не теряя при этом даты, стили, объединённые ячейки и картинки. Обзор возможностей ридера.
XLSX — это не «документ Excel», а ZIP-архив с XML-файлами. В статье разбираю внутреннее устройство формата и объясняю, почему потоковая запись принципиально эффективнее объектной модели при генерации больших Excel-файлов в PHP
Генерация Excel в PHP кажется простой задачей, ровно до тех пор, пока файл не вырастает до сотен тысяч строк, а скрипт не упирается в лимиты памяти или не отваливается по таймауту.
Это статья про философию FastExcelPhp и задачи, которые решает это семейство библиотек.
Зачем нужна библиотека FastExcelWriter, если есть замечательная PhpSpreadsheet? Да затем, что она просто лучше - быстрее, экономнее, лаконичнее!