【发布时间】:2011-12-19 15:15:05
【问题描述】:
使用 PHPExcel,我可以单独运行每个选项卡并获得我想要的结果,但如果我将它们全部添加到一个 excel 中,它就会停止,没有错误或任何事情。
每个选项卡包含大约 60 到 8 万条记录,我有大约 15 到 20 个选项卡。所以大约 1600000 条记录被分成多个标签(这个数字可能还会增长)。
此外,我使用 .xlsx 扩展名测试了 .xls 的 65000 行限制,如果我运行每个选项卡它是自己的 excel 文件,则没有问题。
伪代码:
从数据库读取数据 启动 PHPExcel 进程 解析每个页面的数据(一些样式/格式,但不多) (使用公式 SUM 将每个数字字段值汇总到 Excel 底部的总计列中) 保存excel(xlsx格式)
我有 3GB 的 RAM,所以这不是问题,并且脚本设置为无超时执行。
我在多个项目中使用了 PHPExcel,并取得了很好的效果,但拥有如此大的数据集似乎是个问题。
每个人都有这个问题吗?解决?提示?等等……
更新:
关于错误日志 --- 内存耗尽
除了向盒子添加更多 RAM 之外,我还有什么其他技巧可以做的吗?
任何人都保存当前状态并使用新数据编辑 excel?
【问题讨论】:
-
你检查你的错误日志了吗? php的内存限制是多少?脚本很可能会尝试分配超出允许范围的内存。
-
废话错误日志---内存耗尽
-
您可以将内存限制提高到可以正常工作的程度。如果它是一个特定的脚本,我看不到它会导致您的机器出现任何问题。例如ini_set('memory_limit', '32M');
-
我有同样的问题......我将电子表格写入 xml 文件,然后使用 PHPExcel 转换为 xls / xlsx - 大文件失败......我的服务器中有 32 GB 内存并为其分配 10 GB (PHP) - 即使有这么多内存,它也无法写入大文件!
-
那不是物理内存,而是你的php.ini中设置的memory_limit
标签: php performance phpexcel large-data