Laravel 4.2でPHPExcelでレポートを生成する際に問題が発生しました。データベースから取得した行数が非常に多く(50万行以上)、作成された配列はPHPのメモリと最終的なファイルの生成でメモリオーバーフローを引き起こします。私はPHPExcelキャッシュシステムを使用しようとしましたが、システムメモリも大量に使用しています。私が使用している他の解決策はありますか?一度に5千ラインなど、レコードの作成を部分的に処理することを考えましたが、その努力が自分の問題を解決するかどうかはわかりません。LaravelでPHPExcelでレポートを生成するソリューション4.2
私はPHPExcelキャッシュ(discISAM)を使用するために使用するコード:
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);
}
はみんなの注目のために事前にありがとうございます。