首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php在没有内存限制错误的情况下将大量数据写入Excel

使用php在没有内存限制错误的情况下将大量数据写入Excel
EN

Stack Overflow用户
提问于 2012-12-22 04:23:36
回答 2查看 5.3K关注 0票数 7

我有一个甲骨文数据库,其中存储了大量的生物识别数据,如HRV和ECG。我需要在excel表格中为每个用户显示这些数据。但是这些数据是如此之大,即使对于一个用户来说,我们也得到了超过10万条记录。目前有100个用户。

我所做的是:

  1. 我使用相同的命令行执行CRON作业,这是我在Zend框架中开发的。
  2. 我确保这个克隆人不会重叠。
  3. 我一个接一个地从oracle数据库中获取所有数据,然后将其存储在一个数组中。
  4. 当我为所有用户获取数据时,我将使用phpexcel库来生成excel表。 Excel工作表的结构
代码语言:javascript
复制
- **uid 1/  uid/2  uid/3  ----------- nth**
- data  |data  |data  |
- data  |data  |data  |
- **|**
- nth

问题:

PHP需要1.5GB的RAM并将数据存储在数组中,并将其发送到与phpexcel交互的函数中,但是这个库需要3-4个小时,然后我得到“致命内存限制”错误。我的系统只有2GB内存。

我应该采取哪些步骤来优化我的代码,以处理这种大小的数据,并以excel格式显示相同的信息,或者我需要增加RAM?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-22 04:33:11

考虑只使用PHP来排除包含结果数据的某种Excel可读的分隔文件(CSV)。(这样的想法是,您不会通过PHP编写Excel -因为您正在经历的限制)。

您可以通过类似Powershell的方法请求php生成的文件,然后让Powershell或其他脚本选择将csv文件直接打开到Excel中,然后保存为xlsx。

或者让命令行php执行“system”调用并执行脚本步骤,直接将csv打开到Excel中,然后将其保存为xlsx。

票数 7
EN

Stack Overflow用户

发布于 2012-12-22 04:34:23

如果单个用户的数据是巨大的,您正在使用这么多的内存来保存这些数据,请尝试以批处理模式用excel编写该数据。它将节省您的内存使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14000050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档