如何用PHPExcel读取超大excel文件

如何用PHPExcel读取超大excel文件,第1张

excel文件不能读取且无法修复的解决办法如下

1.将此文件复制一份并重命名为.zip的文件。

然后打开此文件,再打开xl的文件夹。

会看到有一个文件名为sharedStrings.xml的文件。

将此文件sharedStrings.xml,拖到桌面上。

2.双击打开此文件,拉动滚动条到最下方,有下图提示,说明表中的<si></si>有异常,一般是少了<si>(本人的个人经验)偶尔是缺少<t>。

3.使用EmEditor打开sharedStrings.xml。

4.会看到如下图,红色标注说明<si></si>是成对出现的,少一个就会出错,他们是一个整体。

5.搜索<si>,有多少个,有161个。

6.搜索</si>,有多少个,有162个。

7.<si>,少一个,在下图位置(这是从下由上找出来的),不要忘记<si></si>是成对出现的,选中一个,这一个整体显示灰色。

8.将缺失的<si>添加进去。

9.将更改过的sharedStrings.xml,替换原来的sharedStrings.xml。

10.将下图此文件重命名成为原来.xlsx格式

这个报错不是PHPExcel报的错,而是php本身报的,原因大概就是因为你读取的文件超过了php单次请求运算占有的内存值的最大值。所以光设置PHPExcel是不行的

解决办法有三个:

1,修改 php.ini 中 memory_limit的值,重启apache服务

2,在你读取文件的页面头部加入 ini_set(”memory_limit”,”100M”)(-1为不限)

3,修改.htaccess 文档,在文档中加上一句:php_value memory_limit 16M(或更大)

虽然有Excel *** 作类,不建议使用。php *** 作excel本来就很不地道,表格复杂点就出错,特别是在linux系统上就更麻烦了。

CSV是通用格式,你可以用excel另存为csv格式,再交给php处理。php有专门的fgetcsv()来读取csv中的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11627785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存