Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP

download Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP

of 5

Transcript of Utilisation de La Bibliotheque de Fonctions PHPExcel Avec PHP

  • 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