欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

phpExcel导出(大数据报错)

程序员文章站 2022-05-24 12:03:31
...
数据量:
列:155
行:10000(后续数据量可能上涨150倍)

前提:
1、因为这1w行的标题存在较为复杂的逻辑问题,所以需要合并单元格的操作,只能选择excel导出
2、原系统导出时,发现会内存溢出,程序崩溃,实际中不可能无限制的修改内存。所以从网上查找了资料,有两种方法,一种是追加(写一个excel,后面的去读取这个excel,然后追加),另一种是多sheet

问题:
1、根据方法做了测试,只是查了这10000个基本数据(没有涉及到原先的多表关联),发现追加的数据量过了500临界点之后程序就崩溃了(内存为php默认的内存),多个sheet也无法解决,难道追加也和内存有关系么?难道数据量超过了限制?有什么方法可以解决这个问题?或者有什么方法可以解决这样的大数据导出?
(需要考虑用户体验。。。)


回复讨论(解决方案)

导成 csv 吧,这个比较容易一些,或者导成 xml 格式,但是文件名可以写成 xls 。

不过,一下子导出150W 行数据,有人看吗?

客户要这么多数据,应该是要别的工具做统计

csv有合并单元格,字体样式的操作么?

导成 csv 吧,这个比较容易一些,或者导成 xml 格式,但是文件名可以写成 xls 。

不过,一下子导出150W 行数据,有人看吗?




客户要这么多数据,应该是要用别的工具做统计(总是各种需求..)

csv有合并单元格,字体样式的操作么?


导成 csv 吧,这个比较容易一些,或者导成 xml 格式,但是文件名可以写成 xls 。

不过,一下子导出150W 行数据,有人看吗?




客户要这么多数据,应该是要用别的工具做统计(总是各种需求..)

csv有合并单元格,字体样式的操作么?

对了,最主要的是这个excel里面有超连接,连接到服务器上用资源管理器查看非结构化数据,如果csv估计不行了吧?

这个可能对你有用 http://www.baidu.com/s?wd=phpExcel%E7%BC%93%E5%AD%98&ie=utf-8



导成 csv 吧,这个比较容易一些,或者导成 xml 格式,但是文件名可以写成 xls 。

不过,一下子导出150W 行数据,有人看吗?




客户要这么多数据,应该是要用别的工具做统计(总是各种需求..)

csv有合并单元格,字体样式的操作么?

对了,最主要的是这个excel里面有超连接,连接到服务器上用资源管理器查看非结构化数据,如果csv估计不行了吧?

存在 xml 格式的吧,可以解决 超连接和 合并单元格式的需求 。

你自己建一个excel 文件,随便录几个数据,再存在 xml 格式,你大概看看,没什么难度。

数据不要一次读出来,可以分页多次遍历追加csv或者exel

全部到处150W,excel的临界点都超过了,肯定不现实的。

PHPExcel 处理Excel的确有很多问题(不知道是不是自己没搞懂), 按document操作经常出现内存不够,或者CPU高飙的情况。数据量一大基本没法操作。
之前参考了几种修改其缓存的方法,对我来说没什么用。你可以参考下。PHPExcel缓存方式 http://pqbd69.blog.163.com/blog/static/2312720062013865360908/