PHPExcel ZipArchive не найден

Я только что загрузил пакет 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 на сервер, может быть, это так? В любом случае, ты можешь мне помочь?

5 ответов


некоторые форматы файлов электронных таблиц, такие как OfficeOpenXML, используемые по умолчанию Excel 2007 и выше, требуют ZipArchive. В самых последних версиях PHP ZipArchive всегда доступен, но до PHP 5.3 его необходимо было вручную установить как расширение PHP.

как @briosheje говорит, Если у вас нет ZipArchive установлен / включен для вашего PHP, то вы можете использовать

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 различные форматы электронных таблиц, и объясняет, какие из них на основе zip.


в моем случае у меня есть 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();

вы должны установить расширение для php под названием Like php-zip и zip-программа на вашем компьютере linux.


Если вы используете cpanel, вы можете установить расширение zip, но не активировать. Вам нужно его активировать. Для этого вам нужно перейти в cpanel > внутри раздела программного обеспечения > нажмите на версию PHP. Затем найдите zip и проверьте его. Теперь спасай. Enable zip extension

обновите страницу приложения.


Я нашел простое решение

  1. войдите в свою cpanel
  2. перейти к программному обеспечению > выбрать версию PHP
  3. выберите PHP версии 7.0 и нажмите set as current button
  4. установите флажок zip
  5. нажмите кнопку Сохранить

теперь вы обновите свой сайт, чтобы загрузить файл excel