Подтвердить что ты не робот

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, но получил почти то же сообщение.

У меня нет корневого разрешения на сервер, возможно, это дело? В любом случае, не могли бы вы мне помочь?

4b9b3361

Ответ 1

Некоторые форматы файлов электронных таблиц, такие как 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 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();

Ответ 3

Вам нужно установить расширение для php, называемое php-zip, и выполнить zip-программу на вашей Linux-машине.

Ответ 4

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

  • войдите в свою cpanel
  • перейти к программному обеспечению > выбрать версию PHP
  • выберите PHP версию 7.0 и нажмите кнопку "Установить как текущую"
  • check zip checkbox
  • нажмите Сохранить

Теперь вы обновляете свой сайт для загрузки файла excel

Ответ 5

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

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

Ответ 6

Самый простой способ - вставить: PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); в вашем скрипте перед вызовом $objWriter->save();

Это сработало для меня.

С уважением!