Запись большого количества строк из БД в xlsx phpspreadsheet
есть база данных в которой около 30ты тысяч строк, раз в день мне нужно выгружать эти данные в xlsx файл, перед записью в xlsx немного эти данные обрабатывать по мелочам, и того получается генерация xlsx файла в 30 000 строк и 25 столбцов.
Суть проблемы: используя php spreadsheet (до этого simplexlsxgen) можно единовременно записать только колок 16ти тысяч строк, если больше то сервер прекращает работу скрипта с известной ошибкой "Fatal error: Maximum execution time of 60 seconds exceeded in".
Было принято решение записывать строки по частям, создать cron который будет каждые 2 минуты записывать по тысячи строк в файл. Происходит это так: скрипт открывает файл
$inputFileName = 'export_data.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();
далее формирует данные для записи и сохраняет в этот же файл уже с дописанными строками
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$outputFileName = 'export_data.xlsx';
$writer->save($outputFileName);
Проблема состоит в том что как только количество строк в файле начинает превышать 18 000 он начинает так же выпадать в ошибку "Fatal error: Maximum execution time of 60 seconds exceeded in". я так понимаю это от того что слишком много времени тратится на открытие файла, извлечение из БД и запись в файл и суммарно это превышает лимит сервера.
Есть ли какой то способ записать такой большой массив данных в xlsx более эффективным способом?