博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHPExcel 读取导入 excel2003,2007各个版本整理
阅读量:6823 次
发布时间:2019-06-26

本文共 1239 字,大约阅读时间需要 4 分钟。

hot3.png

最近在做一个php读取excel存入数据库的功能,于是用到了phpexcel,下载安装以后只能读取excel2003,2007以后的读取不了,搜了很多很多方法,也用了不少时间,最后总结一下吧,希望帮助以后像我这样的新手

首先读取2007的时候 一直没法load文件,最后发现好像是,没有读取权限吧?

说说解决方法吧

  1. 设置php.ini里面的open_basedir,把前面的;去掉,也就是取消注释

这时又报错了:PHPExcel 报 Allowed memory size of 8388608 byte

解决方法:

使用 phpExcel 报 Allowed memory size of 8388608 bytes exhausted 错误,原因是php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候 会发生上述错误。

解决办法:

‍1,修改 php.ini 将memory_limit由 8M 改成 16M(或更大),重启apache服务

2,在PHP 文件中 加入 ini_set('memory_limit','100M'); //100不行就写10000 测试一下

注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限

3,修改.htaccess 文档(前提是该目录支持.htaccess) 在文档中新增一句:php_value memory_limit 16M(或更大)

下面是一个测试页面:

load("test.xlsx"); // 文件名称 $sheet = $PHPExcel->getSheet(0); // 读取第一个工作表从0读起 $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 echo $highestRow.$highestColumn; // 根据自己的数据表的大小修改 $arr = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F'); // 每次读取一行,再在行中循环每列的数值 for ($row = 1; $row <= $highestRow; $row++) { for ($column = 0; $column < 6; $column++) { $val = $sheet->getCellByColumnAndRow($column, $row)->getValue(); $list[$row][] = $val; } } echo "
".print_r($list)."
";?>

转载自:

转载于:https://my.oschina.net/u/1179286/blog/689730

你可能感兴趣的文章
[原译]理解并实现装饰器模式
查看>>
移动端文本框被原生键盘弹出后挡住文本框
查看>>
项目启动会的意义
查看>>
js捕捉浏览器关闭事件
查看>>
1.6 贪婪算法
查看>>
进击的Python【第十章】:Python的高级应用(多进程,进程间通信,协程与异步,牛逼的IO多路复用)...
查看>>
数据类型
查看>>
Linux环境下的SVN创建新的项目
查看>>
CSMA/CD
查看>>
ICMP
查看>>
页面默认值显示
查看>>
实验五 201521450040 马霞
查看>>
作业二
查看>>
常用Wireshark过滤命令
查看>>
Redis学习——Windows环境下Redis的安装(二)
查看>>
常用正则
查看>>
结对编程作业——毕设导师智能匹配
查看>>
常用github命令
查看>>
liveCD修复Grub Ubuntu 14.03
查看>>
马拉车——Manacher一篇看上去很靠谱的理解(代码显然易懂)
查看>>