找不到PHPExcel ZipArchive

时间:2014-08-07 07:51:33

标签: 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权限,也许就是这种情况?无论如何,你能帮我解决这个问题吗?

6 个答案:

答案 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)

我找到了简单的解决方案

  1. 登录您的cpanel
  2. 转到软件>选择PHP版本
  3. 选择PHP 7.0版并单击“设置为当前按钮”
  4. 检查zip复选框
  5. 点击保存
  6. 现在您刷新您的网站以下载excel文件

答案 4 :(得分:1)

如果您使用的是cpanel,则可能已安装zip扩展程序但未激活。你需要激活它。在这种情况下,您需要转到cpanel&gt; <内部软件部分>点击PHP版本。然后找到拉链并检查它。现在保存。 Enable zip extension

刷新您的申请页面。

答案 5 :(得分:0)

简单的方法是插入: PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); 在调用$objWriter->save();

之前在脚本中

这对我有用。

致谢!