К сожалению, PHPExcel и PHPSpreadsheet не очень эффективны для больших файлов.
Ваши параметры довольно ограничены:
- Продолжайте увеличивать лимит памяти
- Данные чанка вотдельные таблицы
- Откат к CSV (с использованием встроенных функций PHP)
Предложение по кэш-памяти от Maarten - хорошая идея, но по моему опыту я получил огромные затраты на скорость, которые полностью сводили на нет всепреимущество памяти.
Я бы предложил полностью отказаться от PHPSpreadsheet и попробовать коробка / носик
Он создан с учетом производительности.и обещает использовать менее 3 МБ памяти независимо от размера файла!Он не только эффективно использует память, но был примерно в 20-30 раз быстрее, чем PHPSpreadsheet.
Он имеет некоторые ограничения (поддерживаются только 3 формата файла, нет автоматической ширины столбца, нет номера столбца / форматирования строки), но я думаю,некоторые из этих недостающих функций запланированы, и на данный момент это был лучший вариант для меня при написании массивной электронной таблицы.
Примечание: я не связан с проектом