PHP7.2环境中PHPExcel无法导出Excel
问题
这几天接到一个bug,说的是有某一个后台的列表页有一个excel导出功能,最近不能使用了,我立即登陆系统发现确实如此,但是这个上线项目已经运行长达2年,中间并没有出现问题,于是我拉出源码进行分析,但是代码看不出明显错误,于是马上进行断点测试。
分析
经过测试发现问题出在PHPExcel上面,执行方法
save()
会报500 Internet sever error
。根据经验这一般是权限问题,我马上检查文件夹权限,但是一切正常。这就很奇怪了,于是查阅资料用了网上所有的方法依然没有恢复,就在我一筹莫展的时候,突然想起前段时间升级了7.2版本PHP,于是我动手查阅资料,果然发现问题!
PHPExcel官方已不再维护了这个项目了,PHPExcel的版本停止在1.8。那个时候也没有7.2,所有兼容性当然没有考虑。由于官方已经停止维护我们也不能获取补丁,那我们只能考虑换一个插件去处理。
选择
官方团队在github上又起了一个新项目,叫
PhpSpreadsheet
,新项目使用了大量的php新特性,比如命名空间,PSR标准,性能也比PHPExcel高了不少。GItHub点这里
如果只是单独的导出excel且数据量巨大的话,我推荐
PHP_XLSXWriter
,它并没有PHPExcel功能丰富,很多高级操作比如冻结表头,并不具备,但是它导出速度非常快,非常适合于数据量特别大,报表格式不是很复杂的导出需求。GitHub点这里
其大概的用法可以参考大佬写的博文,戳这里
思考
最终我选择PHP_XLSXWriter完成替换,从而解决BUG,从这次BUG中我意识到一个问题,每当升级PHP版本时,插件相应的升级刻不容缓。就像php7.2刚出来的时候YII2等主流框架会报致命错误,其原因就是7.2将Object作为了关键字,而框架将其定义为类。所以导致错误,一样是不向下兼容的错误。尽量避免错误,需要在每次更新版本前多去研究其特性,才可能规避BUG,最后说一句,祝大家永无BUG。
PHP7.2环境中PHPExcel无法导出Excel相关推荐
- Winform中通过NPOI导出Excel时通过ICellStyle和IDataFormat格式化日期显示格式
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- Winforn中通过NPOI导出Excel时通过XSSFClientAnchor和XSSFPicture添加图片
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- springboot中使用poi导出excel文件(亲测实现了第一个功能)
1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...
- DataTable中的数据导出Excel文件
DataTable中的数据导出Excel文件 View Code ///<summary> /// 将DataTable中的数据导出到指定的Excel文件中 ///</summary ...
- 在vue中把数据导出Excel文件
在vue中把数据导出Excel文件 第一次尝试写文章 在vue中把数据导出成Excel格式的文件,话不多,上代码: 第一步我们要先安装几个集成的插件 npm install -S file-saver ...
- Web中的EasyExcel导出Excel(不创建对象且自定义合并单元格策略)
Web中的EasyExcel导出Excel(不创建对象且自定义合并单元格策略) 适用于多张表(只查单表数据就用创建对象那种方法) Controller @RequestMapping(value = ...
- 64位环境中使用SQL查询excel的方式解决
--64位环境中使用SQL查询excel的方式 环境: OS:Windows Server 2008 R2 Enterprise MSSQL:Microsoft SQL Server 2008 R2 ...
- java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)
java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),可以设置输出的ex ...
- Java中导入、导出Excel——HSSFWorkbook 使用
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
最新文章
- Spring知识点总结-2
- 使用DFS求任意两点的所有路径
- mysql日期加一天的公式_2020国考行测冲刺指导:数学运算常用公式大盘点
- boost::gil::pixel_bit_size用法的测试程序
- Python 总结题目
- 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(二)-带宽控制...
- 三分钟解决Matlab中文乱码问题
- 登录验证----滑块/拼图碎片/随机num
- 排序链表(归并排序)
- Go手动安装pkg包初体验
- Dlink PHP p308av,D-Link系列路由器漏洞挖掘
- 通过批处理文件bat批量修改图片名称
- 微信小程序实战八:优惠券页面的实现
- springbootadmin 客户端监控配置
- 思考力,决定你的产品力
- TCP系列43—拥塞控制—6、Congestion Window Validation(CWV)
- python小游戏之垃圾分类
- 注解与反射 - 注解
- Openstack之路(九)云硬盘服务Cinder
- android一键拨号