找不到PHPExcel ZipArchive

whi*_*tee 14 php phpexcel

我刚刚下载了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权限,也许就是这种情况?无论如何,你能帮我这个吗?

Mar*_*ker 41

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

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

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
Run Code Online (Sandbox Code Playgroud)

PCLZip作为PHP内置ZipArchive类的替代品包含在PHPExcel发行版中,尽管速度相当慢.即使没有ZipArchive,启用PCLZip也可以使用基于zip的电子表格格式.

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

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

  • 在所有这些步骤之后,`sudo apt-get install php7.0-zip`为我工作了... (14认同)
  • @Chaitanya解决方案在php 7上工作 - Ubuntu 16.04.接受的答案是Debian Jessie的php 5.6. (2认同)

Ken*_*lar 11

在我的情况下,我有PHP 5.4
使用PHPExcel,我遇到了这个异常.

FatalErrorException in Excel2007.php line 94: Class 'ZipArchive' not found
Run Code Online (Sandbox Code Playgroud)

通过在PHPExcel/Reader/Excel2007.php上附加此行解决了这个问题

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
Run Code Online (Sandbox Code Playgroud)

在调用getZipClass方法之前.

$zipClass = PHPExcel_Settings::getZipClass();
Run Code Online (Sandbox Code Playgroud)


小智 6

你必须在linux机器上安装php的扩展名,如php-zip和zip程序.


小智 5

我找到了简单的解决方案:

 1. login to your cpanel
 2. go to software > select PHP version
 3. select PHP version 7.0 and click set as current button
 4. check zip checkbox
 5. click save
Run Code Online (Sandbox Code Playgroud)

现在您刷新站点以下载 excel 文件