返回信息流我需要读入一个200M+的.xlsx文件,
报错如下
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 1566265554 bytes) in Classes\PHPExcel\Reader\Excel2007.php on line 327
一开始是以为把数据导入数组的方法导致了内存不足,但是最后发现仅仅是load filepath也不行,百度上说的
set_time_limit(90);
ini_set("memory_limit", "1024M");
还有
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( ' memoryCacheSize ' => '8MB'
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
也都无法解决
求问大神 该如何是好。。。
这是一条镜像帖。来源:北邮人论坛 / www-technology / #28694同步于 2014/12/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
有没有用过PHPExcel处理超大excel文件的同学呀?
ztreez
2014/12/17镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
PHPExcel…没办法 要么加大内存 要么用csv文件
【 在 ztreez 的大作中提到: 】
我需要读入一个200M+的.xlsx文件,
报错如下
...
读xlsx?
死定了。因为xlsx很自作聪明地把所有单元格里的数据单独放在一个xml里,然后表格里每个单元格都是指向一个数据的引用。这样,不得不把前者全部装进内存,才能构造回原表格。(gan爆微软那些sb的菊花)
解决方案:
1. 用更大的内存
2. 或者告诉你的用户不要用xlsx。ods,xls,csv都可以。
膜拜
但是用户那边估计让他们换是没谱了,只能换大内存了?所谓的块读取可行吗
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 读xlsx?
: 死定了。因为xlsx很自作聪明地把所有单元格里的数据单独放在一个xml里,然后表格里每个单元格都是指向一个数据的引用。这样,不得不把前者全部装进内存,才能构造回原表格。(gan爆微软那些sb的菊花)
: 解决方案:
: ...................
通过『我邮2.0』发布
对。。set time200结果告诉我时间不够也是跪了
【 在 ashjn2011 (auchan) 的大作中提到: 】
: 用过,曾经用它读入5M的文件就慢的要死了,200M就算内存不跪,时间也要跪
通过『我邮2.0』发布
不行。xlsx格式决定了不能那样读。
【 在 ztreez 的大作中提到: 】
: 膜拜
: 但是用户那边估计让他们换是没谱了,只能换大内存了?所谓的块读取可行吗
: 通过『我邮2.0』发布
来自「北邮人论坛手机版」