web-dev-qa-db-fra.com

PHPExcel ZipArchive introuvable

Je viens de télécharger le package PHPExcel et j'ai essayé d'importer une feuille de calcul Excel, mais je ne reçois qu'une erreur ZipArchive not found. Je travaille sur Windows, mais le serveur est sous Linux. J'ai vérifié php.ini pour voir si php_Zip est désactivé, mais ce n'était même pas là.

J'ai essayé de l'installer avec 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

Et aussi pear install Zip-1.10.2.tgz mais reçu à peu près le même message.

Je n'ai pas la permission root sur le serveur, c'est peut-être le cas? Quoi qu'il en soit, pourriez-vous m'aider avec ça?

13
whiteestee

Certains formats de fichier de feuille de calcul, tels que OfficeOpenXML utilisé comme format par défaut par Excel 2007 et versions ultérieures, nécessitent ZipArchive. Dans les versions les plus récentes de PHP, ZipArchive est toujours disponible, mais avant PHP 5.3, il devait être installé manuellement en tant qu'extension PHP.

Comme @briosheje dit Si ZipArchive n’est pas installé/activé pour votre PHP, vous pouvez utiliser

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

PCLZip est inclus dans la distribution PHPExcel en tant qu’alternative à la classe ZipArchive intégrée de PHP, bien qu’elle soit un peu plus lente. L'activation de PCLZip vous permet de travailler avec des formats de feuille de calcul basés sur Zip même sans ZipArchive.

Cependant, lorsque nous avons intégré PCLZip pour la première fois (à l’origine dans PHPExcel 1.7.6), c’était seulement une option lors de l’écriture de formats Zip, et non lors de leur lecture. Nous avons modifié cela dans PHPExcel 1.8.0. Par conséquent, l'activation de PCLZip vous permet désormais de lire les formats basés sur Zip et de les écrire.

La documentation de PHPEXcel Reader détaille les différents formats de feuille de calcul et explique ceux qui sont basés sur Zip.

40
Mark Baker

Dans mon cas, j'ai PHP 5.4
Lors de l’utilisation de PHPExcel, j’ai rencontré cette exception.

FatalErrorException in Excel2007.php line 94: Class 'ZipArchive' not found

Résolu en ajoutant cette ligne sur PHPExcel/Reader/Excel2007.php

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

avant d'appeler la méthode getZipClass.

$zipClass = PHPExcel_Settings::getZipClass();
11
Kent Aguilar

Vous devez installer une extension pour php appelée php-Zip et programme Zip sur votre machine Linux.

6
Stas Panyukov

Si vous utilisez cpanel, l'extension Zip peut être installée mais pas activée. Vous devez l'activer. Dans ce cas, vous devez aller à cpanel> dans la section des logiciels> cliquez sur la version PHP. Ensuite, trouvez Zip et vérifiez-le. Maintenant, enregistrez .  Enable Zip extension

Actualisez la page de votre application.

1
Shafiq

J'ai trouvé une solution simple

  1. connectez-vous à votre cpanel
  2. aller au logiciel> sélectionner la version PHP
  3. sélectionnez PHP version 7.0 et cliquez sur le bouton Définir comme bouton actuel
  4. cocher la case Zip
  5. cliquez sur Enregistrer

Maintenant, vous actualisez votre site pour télécharger le fichier Excel

1
Raghavendra BK

Le moyen le plus simple consiste à insérer: PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); dans votre script juste avant d'appeler $objWriter->save();

Cela a fonctionné pour moi.

cordialement!

0