PHPExcel$objWriter-&;>保存()失败
我正在使用PHPExcel基于数据库中的记录创建一个Excel文件,在大型数据集上生成它时遇到一个奇怪的问题。我已将其范围缩小到导致问题的一行:
$objWriter->save('php://output');
它只是输出一个空白文件,而不是预期的工作簿。此外,如果我尝试将结果保存到本地文件而不是重定向到浏览器,效果也是相似的-不会创建任何文件。
最重要的是,它非常适合较小的数据集(较小=最多200行,较大=最多2000行,在两种情况下都最多20列)。它在另一台具有完全相同、100%完全相同的大型数据集的(开发)服务器上也可以很好地工作。我确实将save()
调用包装在try-Catch中,但没有引发异常。在获取save()
之前执行memory_get_peak_usage()
会告诉我它使用了24MB,而我在脚本的前面已经使用了ini_set('memory_limit', '-1')
。此外,在运行脚本时监视服务器上的内存使用情况也没有显示出任何显著的增加。
有调试它的提示吗?
编辑:APACHE日志中没有错误,但我确实注意到访问日志中的相关行是:
10.1.1.1 - - [01/Jun/2011:08:35:03 -0400] "GET /get_excel.php HTTP/1.1" 200 16386
奇怪的部分是最后一列大小。我实际下载的文件总是空的--正好是0位,而不是16386位。
解决方案
根据您在评论中提供的反馈,我认为您不符合所有要求。您可以找到需求列表here on the phpexcel website。
相关文章