我刚刚下载了PHPExcel软件包,我尝试导入Excel电子表格,但我得到的只是一个错误ZipArchive not found
。我在Windows上工作,但服务器在Linux上。我检查了php.ini
以查看php_zip是否被禁用,但它甚至都没有。
我尝试使用PECL进行安装:$ pecl install zip
No releases availble for package "pecl.php.net/zip"
Cannot initialize 'channel://pecl.php.net/zip', invalid or missing package file
Package "channel://pecl.php.net/zip" is not valid
install failed
还有pear install zip-1.10.2.tgz
,但收到了相同的信息。
我没有服务器的root权限,也许就是这种情况?无论如何,你能帮我解决这个问题吗?
答案 0 :(得分:40)
某些电子表格文件格式(如Excel 2007及以上版本的默认格式使用的OfficeOpenXML)需要ZipArchive。在最新版本的PHP中,ZipArchive始终可用,但在PHP 5.3之前,它需要手动安装为PHP扩展。
正如@briosheje所说如果您没有为PHP安装/启用ZipArchive,那么您可以使用
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
PCLZip作为PHP内置ZipArchive类的替代品包含在PHPExcel发行版中,尽管速度相当慢。即使没有ZipArchive,启用PCLZip也可以使用基于zip的电子表格格式。
然而,当我们第一次捆绑PCLZip(最初在PHPExcel 1.7.6中)时,它只是在编写基于zip的格式时的选项,而不是在阅读时。我们在PHPExcel 1.8.0中对此进行了更改,因此启用PCLZip现在可以读取基于zip的格式以及编写它们。
PHPEXcel Reader文档详细介绍了不同的电子表格格式,并解释了哪些是基于zip的。
答案 1 :(得分:11)
在我的情况下,我有PHP 5.4 使用PHPExcel后,我遇到了这个异常。
FatalErrorException in Excel2007.php line 94: Class 'ZipArchive' not found
通过在 PHPExcel / Reader / Excel2007.php
上附加此行来解决此问题PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
在调用getZipClass方法之前。
$zipClass = PHPExcel_Settings::getZipClass();
答案 2 :(得分:6)
您必须在Linux机器上安装名为 php-zip 和zip程序的php扩展程序。
答案 3 :(得分:1)
我找到了简单的解决方案
现在您刷新您的网站以下载excel文件
答案 4 :(得分:1)
如果您使用的是cpanel,则可能已安装zip扩展程序但未激活。你需要激活它。在这种情况下,您需要转到cpanel&gt; <内部软件部分>点击PHP版本。然后找到拉链并检查它。现在保存。
刷新您的申请页面。
答案 5 :(得分:0)
简单的方法是插入:
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
在调用$objWriter->save();
这对我有用。
致谢!