Avant-propos▲
Lors de la rédaction de l'article sur Spreadsheet_Excel_Writer en PHP, Yogui, m'avait demandé si j'allais faire un parallèle avec la classe PHPExcel. Ne connaissant pas cette classe, je n'avais pas répondu positivement à cette demande.
Et je ne vais toujours pas le faire ici, parce que nous ne sommes pas à faire un parallèle, mais bien à découvrir un outil puissant qui va nous rendre de grands services dans la génération de nos tableurs.
PHPExcel▲
PHPExcel va nous proposer la génération des formats suivants :
- Excel 2007 ;
- Excel 2007 - compatible Excel 2003 ;
- Excel 5 - via la librairie Spreadsheet_Excel_Writer ;
- PDF - via la librairie FPDF ;
- CSV ;
- HTML.
En plus, PHPExcel va affiner nos tableurs avec des éléments tels que :
- formater les cellules ;
- ajouter des formules ;
- ajouter des images ;
- protéger les données, les cellules ;
- …
Téléchargement▲
Pour commencer, nous allons télécharger la librairie PHPExcel, ce fichier comporte la librairie dans le répertoire ./Classes, nous avons également l'API dans le répertoire ./Documentation, ainsi qu'un répertoire ./Tests avec un certain nombre d'exemples.
Il faut extraire le répertoire ./Classes et le déposer dans le répertoire de votre Web serveur.
Spécificités▲
PHPExcel ne fonctionne qu'avec PHP 5 et réclame des extensions spécifiques pour fonctionner correctement. Ces extensions sont :
- Zip ;
- GD ;
- XML.
Vous pouvez vérifier que vous avez ces extensions avec la fonction.
phpinfo();
Testé sur…▲
J'ai testé tous les exemples sur différents OS et tableurs :
- O0o 2.4 / Debian ;
- O0o 3.0 / Debian ;
- Excel 2007 /VirtualBox/Windows XP ;
- Excel 2007 /Windows Serveur 2003.
On peut retrouver quelques différences entre les versions de tableurs, notamment au niveau des couleurs de remplissage des cellules, ou encore dans les bordures, Ooo 2.4 ne reconnaît pas les formats type Dash Dot (BORDER_DASHDOT).
Sur le serveur 2003 en production avec PHP 5.2.6, j'ai été confronté à un souci de dll (« php_zip.dll »), cela tronque le fichier.
Sur le forum de PHPExcel, il est conseillé de télécharger une autre version de php_zip.dll, notamment sur http://snaps.php.net