phpExcel: Allowed memory size of 134217728 bytes exhausted
奇怪的错误,虽然表格内容有点大,2万多行50多列。但单线程理应不会吃掉128M内存
试过代码中非常保守地注销不必要的对象管控内存,依然不行。
解决方法:做了一个激进的预设
ini_set('memory_limit', '1024M');
终于运行通过了。
导出的xlsx文件只有2M,百思不得其解,不该吃掉128M内存啊?
奇怪的错误,虽然表格内容有点大,2万多行50多列。但单线程理应不会吃掉128M内存
试过代码中非常保守地注销不必要的对象管控内存,依然不行。
解决方法:做了一个激进的预设
ini_set('memory_limit', '1024M');
终于运行通过了。
导出的xlsx文件只有2M,百思不得其解,不该吃掉128M内存啊?
短篇过一次手备忘。
需要在创建的xls文档增加多一页(Sheet)。
一开始在这个地方提示下标越界
$xls->setActiveSheetIndex(1);
由于官方附的samples内没有找到明确的范例,所以参考 PHPExcel.php 源码内方法修改
$sheet = $xls->createSheet();
$xls->addSheet($sheet);
$xls->setActiveSheetIndex(1);
这次报错
PHP Fatal error: Uncaught PHPExcel_Exception: Workbook already contains a worksheet named 'Worksheet'.
Rename this worksheet first.
感觉奇怪由于文档内并没有命名为Worksheet
的页,查了源码设置 sheet name 在类里的方法对应是 setTitle(),可是手动重命名后仍报这个错误且注明的名称冲突为重命名的新名称。
不啰嗦废话了,结论是 createSheet() 之后不需要 addSheet() 修正后的写法
$sheet = $xls->createSheet(1);
$sheet->setTitle("第二页");
$sheet->setCellValue('A1','第一列标题');
//等同于 $xls->setActiveSheetIndex(1)->setCellValue('A1','标题1');
参考文: https://stackoverflow.com/questions/9850013/phpexcel-creating-multiple-sheets-by-iteration