Vous êtes sur la page 1sur 5

Utilisation de la bibliothque de fonctions PHPExcel avec PHP

Sommaire
Utilisation de la bibliothque de fonctions PHPExcel avec PHP ................................................................ 1 I Introduction ...................................................................................................................................... 2 II Prparatifs ........................................................................................................................................ 2 III Ecriture du script ............................................................................................................................. 2 1. 2. 3. 4. 5. 6. Obtention des donnes issues de lapplication web .................................................................. 2 Les fichiers ncessaires inclure .............................................................................................. 3 Cration dun objet et cration dune feuille de calculs ............................................................ 3 Intgration des donnes........................................................................................................... 4 Configurer des cellules ............................................................................................................. 4 Sauvegarder au format Excel 2007 ........................................................................................... 5

IV Conclusion ....................................................................................................................................... 5

I Introduction
Dans ce tutoriel, je vais vous montrer comment raliser un script PHP vous permettant de gnrer automatiquement une feuille de calculs Excel partir de donnes issues dune application Web. Cette bibliothque fournit toutes fonctions ncessaires pour intgrer des tableaux de donnes directement dans le fichier gnr, nous verrons quil est trs facile de raliser cette opration en une seule ligne de code sans passer par une boucle

II Prparatifs
Avant tout, il va falloir tlcharger la bibliothque de fonctions PHPExcel. La page daccueil se trouve sur le portail communautaire Codeplex cette adresse. Vous y trouverez e nombreuses informations sur le droulement du projet. Il vous suffit de cliquer sur longlet Download pour accder la page de tlchargement. Plusieurs fichiers peuvent tre tlchargs. Tout dpend si vous voulez tlcharger la documentation en mme temps. Tous ces fichiers sont au format compress Une fois tlcharg, il faut dcompresser le contenu dans un rpertoire de votre choix. En fait pour pouvoir utiliser cette bibliothque de fonctions vous aurez besoin de ce qui est contenu dans le rpertoire classes du package. Copier ce rpertoire dans le dossier contenant votre projet PHP comme vous le voulez Vous tes enfin prt dvelopper votre script

III Ecriture du script


1. Obtention des donnes issues de lapplication web Avant toute chose nous allons faire un point sur lenvoi par paramtre des donnes au script qui va grer lintgration de celles-ci dans la feuille de calcul. Dans la page qui appelle le script il est essentiel denvoyer les donnes en utilisant les fonctions htmlentities et serialize comme ceci : $strsend = "header=".htmlentities(serialize($headerXLS), ENT_QUOTES | ENT_IGNORE)."&data=".htmlentities(serialize($dataXLS), ENT_QUOTES | ENT_IGNORE)."&headers=".htmlentities(serialize($headers), ENT_QUOTES | ENT_IGNORE); $dataXLS, $headers tant des tableaux deux dimensions dclars et contenant des donnes Lenvoi des donnes se fait par lintermdiaire dun lien comme ceci : <div class='toolbar'><div class='button'><a href='#' onclick="javascript:rafraichir('tools/exportExcel.php?<?php echo ($strsend); ?>');return false;">Export Excel</a></div></div> Ensuite dans le script il faut rcuprer les donnes envoyes par la page appelante, lopration consiste dsrialiser les donnes, comme ceci :

if (isset($_GET['header'])) { $header = unserialize($_GET['header']); } if (isset($_GET['data'])) { $data = array(); $data = unserialize($_GET['data']); }

if (isset($_GET['headers'])) { $headers = array(); $headers = unserialize($_GET['headers']); } Voil maintenant que vous avez rcupr les donnes il vous est possible de travailler avec 2. Les fichiers ncessaires inclure Vous devez maintenant inclure les includes suivant : include('phpExcel.php'); include('phpExcel/Writer/Excel2007.php'); Le deuxime fichier dinclusion fournit toutes les fonctions permettant la cration du fichier OpenXML permettant de gnrer une feuille de calcul au format Excel 2007. Si vous regarder bien le contenu du dossier Writer vous vous apercevrez que vous pouvez gnrer des fichiers au format PDF par exemple. Ce qui prouve que cette bibliothque est trs riche. 3. Cration dun objet et cration dune feuille de calculs Avant toute chose, il est ncessaire de crer un objet en appelant la classe PHPExcel , comme ceci : $objExcel = new phpExcel();

Il faut ensuite crer une feuille de calculs sur laquelle on pourra dposer nos donnes, comme ceci : $objExcel->setActiveSheetIndex(0); 0 correspond la premire feuille de calculs cre. Une fois que vous avez cr votre objet et activ une feuille de calculs, il vous possible dinteragir avec pour intgrer les donnes prcdemment acquises. 4. Intgration des donnes Nous allons commencer par intgrer le titre, que nous avons rcuprer par la variable $header. Pour ce faire, il est important de cibler la feuille de calculs que lon vient dactiver et ensuite dterminer sur quelle cellule de la feuille nous voulons intgrer les donnes, cest ce que fait cette ligne de code : $objExcel->getActiveSheet()->SetCellValue('A1', $header); Nous avons intgr un titre dans notre document, maintenant il nous faut intgrer les enttes du tableau. Ceci va tre effectu partir dun tableau de donnes $headers. Cette fois-ci nous allons appeler une fonction qui prend en argument un tableau et qui fait tout le travail dintgration notre place sans utiliser de boucle pour itrer chaque lment. Celle-ci est fromArray elle prend en argument les paramtres suivant : Le premier argument passer est le tableau contenant les donnes ; Le deuxime permet de fournir une valeur du tableau correspondant une cellule vide du tableau Excel gnr ; Le troisime permet de fournir la premire cellule o lon va commencer intgrer les donnes ; Le quatrime permet de spcifier si lon doit faire une comparaison stricte pour les valeurs nulles du tableau, cest un boolen.

Voici la ligne permettant dintgrer les enttes de notre tableau : $objExcel->getActiveSheet()->fromArray($headers, NULL, 'A3', true); Maintenant, voici les donnes permettant dintgrer les lignes de donnes incluses dans notre tableau $data, cest exactement le mme procd : $objExcel->getActiveSheet()->fromArray($data, NULL, 'A4', true);

5. Configurer des cellules Voil nous en avons fini avec lintgration des donnes passons maintenant sur le paramtrage des dimensions des cellules.

a. Changer les dimensions Pour dimensionner les cellules par colonnes, il suffit dutiliser la fonction getColumnDimension qui prend en paramtre le nom de la colonne. Voici la ligne de code ncessaire pour changer la largeur de la colonne : $objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); Pour changer la hauteur dune ligne entire de cellules il faut en premier lieu slectionner la ligne que lon veut modifier. Pour ce faire il suffit dy accder grce la fonction getDefaultRowDimension() et ensuite modifier la hauteur de la ligne entire : $objExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); b. Attribuer un format numrique une cellule Il est possible aussi dappliquer un format spcifique une cellule. Il va vous falloir appeler la fonction getStyle prenant en paramtre le nom de la cellule modifier. Ensuite il faut spcifier que lon veut changer le style de la cellule en modifiant son format de cellule, ceci est effectu par la ligne de code suivante : $objExcel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode('#,##0.00'); c. Changer la couleur dune cellule Pour modifier la couleur dune cellule il suffit de slectionner la cellule que lon veut modifier, de slectionner le type de remplissage (ici FILL_SOLID) et ensuite dappliquer un nom de couleur : $objExcel->getActiveSheet()->getStyle('B3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objExcel->getActiveSheet()->getStyle('B3')->getFill()->getStartColor()->setARGB('FFFF0000'); 6. Sauvegarder au format Excel 2007 Pour raliser cette opration il suffit de faire un appel la classe PHPExcel_Writer_Excel2007, comme ceci : $objWriter = new PHPExcel_Writer_Excel2007($objExcel); Ensuite pour sauvegarder le fichier il suffit dappeler la fonction Save de cet objet : $objWriter->save($nom_fichier);

IV Conclusion
Nous venons de voir que lon peut trs bien gnrer automatiquement des fichiers bureautiques partir de donnes extraites dune application Web et en particulier dune base Mysql ou SQL Server par exemple. Cette bibliothque est trs riche et permet de raliser des tableaux dinsrer des images et bien plus encore En effet elle gre aussi dautres formats comme le PDF

Vous aimerez peut-être aussi