Некоторые методы, которые можно использовать для обработки больших файлов в PHPSpreadsheet:
- Увеличение лимита памяти. 35 По умолчанию максимальный объём памяти для PHPSpreadsheet — 128 МБ. 1 Можно настроить размер памяти, но это опасно при большом количестве параллельных запросов. 1
- Разделение файла на части. 12 Можно использовать функцию readCell, чтобы выполнять разделение файла. 1 Сначала нужно предварительно прочитать файл Excel, получить все листы и количество строк данных. 1 Затем следует проанализировать полученные записи и определить, сколько строк исходных данных Excel нужно загрузить в каждую часть. 1
- Использование библиотеки box/spout. 3 Она создана с учётом производительности и обещает использовать менее 3 МБ памяти независимо от размера файла. 3 Библиотека работает примерно в 20–30 раз быстрее, чем PHPSpreadsheet. 3 У неё есть некоторые ограничения: поддерживаются только 3 формата файлов, нет автоматической ширины столбцов, нет форматирования номера столбца/строки. 3
- Использование преемника библиотеки box/spout — Openspout. 3 Он является ответвлением box/spout и активно поддерживается. 3