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?
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.
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();
Vous devez installer une extension pour php appelée php-Zip et programme Zip sur votre machine Linux.
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 .
Actualisez la page de votre application.
J'ai trouvé une solution simple
Maintenant, vous actualisez votre site pour télécharger le fichier Excel
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!