PHPExcel导入EXCEL文件时LOAD方法出错

phpexcelPHPExcel是处理EXCEL文件导入导出的常用工具,以前的项目中用过很多次,都没发现问题。然而最近小卓打算把一个完成测试的项目部署到新服务器时,却发现PHPExcel导入Excel文件的功能失效了,进一步定位到了在用LOAD方法加载上传的Excel文件时有出错

既然定位到了出错的位置,自然是上网问度娘了,搜索一番后发现大概是两种说法:

  1. 提议要在LOAD之前加上$phpexcel = new PHPExcel();来创建一个创建空白文档;
  2. 建议检查Excel文件的路径。

然而逐一试过后发现都不能解决此处遇到的问题。这时回过头一想,代码是同步过来的,也就是说跟测试服务器上的是一样的,而在测试服务器上代码是正常测试过的,所以LOAD方法出错不可能是代码方面的错误引起的,而只有可能是服务器配置上的问题,到这里有了个大概的方向。

phpexcel text logo那到底是少了什么配置呢?度娘上没答案只有求助与谷歌了,一番搜索后终于发现一个 有意思的提示:

Try to make sure zip extension is enabled in php.ini:
extension=php_zip.dll

虽然人家是在IIS上的项目,但很明显问题跟php-zip模块有关。为什么需要zip模块呢?提到zip模块,我突然想起了以前解析doc和docx的文档结构时,可以把文件强制改后缀为.zip文件,然后就可以解压出文档结构。既然doc和docx实际都是zip文件,那么xls和xlsx是不是也有可能是。这样服务器需要支持zip模块来解析微软的文件格式也就可以理解了。

于是在两服务器上php -m检查了一下现有的模块,发现果然测试服务器上有zip模块,而新服务器上没有。于是,在新服务器上安装zip模块:

sudo apt-get install php-zip

完成zip模块安装后,LOAD方法就不再报错了,PHPExcel就可以正常导入EXCEL文件到数据库了。

>>原创文章,欢迎转载。转载请注明:转载自惠州市卓优互联科技有限公司,谢谢!
>>原文链接地址:PHPExcel导入EXCEL文件时LOAD方法出错


关于作者

留下您的回复