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 tel que :
- Formater les cellules.
- Ajouter des formules
- Ajouter des images
- Protéger les données, les cellules
- ....
1.1. 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.
1.2. 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();
1.3. 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