找不到 PHPExcel ZipArchive

2022-08-30 23:51:31

我刚刚下载了PHPExcel软件包,并尝试导入Excel电子表格,但我得到的只是一个错误。我在Windows上工作,但服务器在Linux上。我检查了php_zip是否被禁用,但它甚至不存在。ZipArchive not foundphp.ini

我尝试用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权限,也许就是这样?无论如何,你能帮我这个吗?


答案 1

某些电子表格文件格式(如 Excel 2007 及更高版本用作默认格式的 OfficeOpenXML)需要 ZipArchive。在大多数最新版本的 PHP 中,ZipArchive 始终可用,但在 PHP 5.3 之前,它需要作为 PHP 扩展手动安装。

正如@briosheje所说,如果您没有为PHP安装/启用ZipArchive,那么您可以使用

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

PCLZip包含在PHPExcel发行版中,作为PHP内置ZipArchive类的替代方案,尽管它要慢得多。启用 PCLZip 允许您使用基于 zip 的电子表格格式,即使没有 ZipArchive 也是如此。

但是,当我们第一次捆绑PCLZip(最初在PHPExcel 1.7.6中)时,它只是编写基于zip的格式时的一个选项,而不是在读取它们时。我们在 PHPExcel 1.8.0 中更改了这一点,因此启用 PCLZip 现在允许您读取基于 zip 的格式以及编写它们。

PHPEXcel Reader文档详细介绍了不同的电子表格格式,并解释了哪些是基于zip的。


答案 2

在我的情况下,我有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();

推荐