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
, но получил почти то же сообщение.
У меня нет корневого разрешения на сервер, возможно, это дело? В любом случае, не могли бы вы мне помочь?
Ответы
Ответ 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();
Это сработало для меня.
С уважением!