Laravel 4.2에서 PHPExcel을 사용하여 보고서를 생성하는 데 문제가 있습니다. 데이터베이스에서 얻은 행 수가 매우 커서 (50 만 줄 이상) 생성 된 배열이 많이 사용됩니다. PHP 메모리 및 최종 파일 생성시 메모리 오버플로가 발생합니다. 필자는 PHPExcel 캐시 시스템을 사용하려고했지만 많은 시스템 메모리를 사용하고 있습니다. 내가 사용하고있는 다른 해결책이 있습니까? 한 번에 5 천 라인의 레코드를 부분적으로 처리하는 방법에 대해 생각했지만 노력으로 인해 문제가 해결되는지는 알 수 없습니다. Laravel에서 PHPExcel을 사용하여 보고서를 생성하는 솔루션 4.2
public function __construct() {
$templateFileName = $this->getTemplateFileName();
$fullPathTemplate = public_path().'/Temp/'.$templateFileName.'.xlsx';
// $cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
$cacheSettings = array(
// 'memoryCacheSize' => '150MB'
'dir' => 'public/Temp/cache'
);
$cacheAtivo = \PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
if (! $cacheAtivo) {
die($cacheMethod . " Cache invalido " . EOL);
}
$objPhpReader = new \PHPExcel_Reader_Excel2007();
$this->phpExcelObject = $objPhpReader->load($fullPathTemplate);
}
모두의 관심과 성원에 감사드립니다 : 나는 PHPExcel 캐시 (discISAM)를 사용하는 데 사용
코드입니다.