utilisation de la bibliotheque de fonctions phpexcel avec php
TRANSCRIPT
-
7/22/2019 Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP
1/5
Utilisation de la bibliothque de fonctions PHPExcel avec PHP
SommaireUtilisation de la bibliothque de fonctions PHPExcel avec PHP ................................................................ 1
I Introduction ...................................................................................................................................... 2
II Prparatifs ........................................................................................................................................ 2
III Ecriture du script ............................................................................................................................. 2
1. Obtention des donnes issues de lapplication web.................................................................. 2
2. Les fichiers ncessaires inclure .............................................................................................. 3
3. Cration dun objet et cration dune feuille de calculs............................................................ 3
4. Intgration des donnes........................................................................................................... 4
5. Configurer des cellules ............................................................................................................. 4
6. Sauvegarder au format Excel 2007 ........................................................................................... 5
IV Conclusion ....................................................................................................................................... 5
-
7/22/2019 Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP
2/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 webAvant 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 :
-
7/22/2019 Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP
3/5
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 inclureVous 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();
-
7/22/2019 Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP
4/5
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 donnesNous 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 lesdonnes ;
Le quatrime permet de spcifier si lon doit faire une comparaison stricte pour les valeursnulles 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 cellulesVoil nous en avons fini avec lintgration des donnes passonsmaintenant sur le paramtrage des
dimensions des cellules.
-
7/22/2019 Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP
5/5
a. Changer les dimensionsPour 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 celluleIl 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 codesuivante :
$objExcel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode('#,##0.00');
c. Changer la couleur dunecellulePour modifier la couleur dune cellule il suffit de slectionner la cellule que lonveut 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 2007Pour 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 ConclusionNous 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