Iamは、ZendFrameworkとPHPExcelを使用してExcel2007ファイルを作成しようとしています。PHPのメモリ制限を増やすことができることは知っていますが、他に方法はありませんか?
これはこれまでの私のコードです。5000行77列でうまく機能しますが、12000行が必要です:-)メモリは128MBに設定されています
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod);
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$phpExcel = new PHPExcel();
// set headers
$select = $db->select();
$select->from('IMPORT')->limit(1);
$data = $select->query()->fetchAll();
$columns = array_keys($data[0]);
$phpExcel->setActiveSheetIndex(0);
$colCNT = 1;
foreach ($columns as $column) {
$letter = Nc_Utils::getNameFromNumber($colCNT);
$phpExcel->getActiveSheet()->SetCellValue($letter . '1', $column);
$colCNT++;
}
unset($select);
unset($data);
$sql = 'SELECT * FROM IMPORT LIMIT 7000';
$stmt = $db->query($sql);
$rowCNT = 2;
while($rows = $stmt->fetch()){
$phpExcel->getActiveSheet()->fromArray($rows, null, 'A'.$rowCNT);
$rowCNT++;
}
unset($rowCNT);
unset($select);
unset($db);
// MEMORY USAGE = 4 MB!
$phpExcelWrite = new PHPExcel_Writer_Excel2007($phpExcel);
$phpExcelWrite->setUseDiskCaching(true);
$phpExcelWrite->save(str_replace('.php', '.xls', __FILE__));
PHPの致命的なエラー:102行目の/Applications/MAMP/htdocs/phpexcel/library/PHPExcel/Shared/XMLWriter.phpで許可されたメモリサイズ134217728バイトが使い果たされました(13878925バイトを割り当てようとしました)