kawabanga
@kawabanga

Как заставить PHPExcel сохранить большой файл?

Проблема такая, пытаюсь записать пустые столбцы на страницу в екселе, получается размерность
A1:TT87 .

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

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
        $cacheSettings = array( 'memoryCacheSize ' => '256MB');
        PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
        $objPHPExcel = PHPExcel_IOFactory::load(dirname($_SERVER['SCRIPT_FILENAME'])."/uploads/example.xls");
// здесь код для вставки ячеек. 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save(Yii::app()->basePath.'/../uploads/'.time().'exles.xls');
  • Вопрос задан
  • 1340 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Таймаут сервера?
Memory_limit?
Ошибку выдает?

Можно разбить задачу на этапы, запускать их ajax-ом, показывать пользователю статус загрузки. И красиво и сервер не нагружаем.
Вначале создаем файл, потом по частям записываем, каждый раз проверяем открывается ли он для записи, если файл слишком большой и убивает оперативку - создаем новый. На выходе 2 и более файлов.

Можно вместо excel создавать csv, он легче. Я не думаю что вы туда формулы засовываете и сводные таблицы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы