Introduction à PHPExcel
Date de publication : 05/02/2009 , Date de mise à jour : 14/07/2010
Premier fichier
2.1. MaitrePylos en A1
2.2. Dans un autre format
2.2.1. Excel5
2.2.2. PDF
2.2.3. HTML
2.2.4. CSV
2.2.5. Excel 2007 - compatible 2003
2.3. Afficher le tableur
2.3.1. Excel 2007 sur le navigateur
Excel 5
PDF
CSV
HTML
Premier fichier
Nous allons voir comment créer notre premier fichier au
format Excel
2007
2.1. MaitrePylos en A1
include ' PHPExcel.php ' ;
include
' PHPExcel/Writer/Excel2007.php ' ;
$workbook = new PHPExcel;
$ sheet =
$workbook ->getActiveSheet ();
$sheet ->setCellValue (' A1 ' , ' MaitrePylos ' );
$writer = new PHPExcel_Writer_Excel2007($ workbook );
$ records = ' ./fichier.xlsx ' ;
$writer ->save ($ records );
|
|
Ce code enregistre un fichier nommé 'fichier.xlsx' sur le disque dur du serveur, il n'apparaîtra pas sur le navigateur.
|
Il faut d'abord inclure les fichiers nécessaires à la génération du tableur
Ensuite nous instancions notre objet PHPExcel
$workbook = new PHPExcel;
|
Nous activons la feuille sur laquelle nous allons travailler (la feuille par défaut), grâce à la méthode ->getActiveSheet().
$ sheet = $workbook ->getActiveSheet ();
|
|
Lors de l'instanciation de notre objet PHPExcel, le constructeur a également instancié diverses classes, notamment la classe PHPExcel_Worksheet
et la méthode getActiveSheet nous donnes donc la main sur cet objet.
|
Nous remplissons notre première cellule avec la méthode ->setCellValue()
$sheet ->setCellValue (' A1 ' , ' MaitrePylos ' );
|
|
Vous remarquerez que, pour désigner la cellule, la méthode ->setCellValue() accepte son nom de tableau à double entrée.
Il existe une autre méthode pour désigner la cellule que l'on veut modifier.
|
$sheet ->setCellValueByColumnAndRow (1 , 4 , ' MaitrePylos ' );
|
Cette méthode prend trois paramètres :
- La ligne
- La colonne
- La valeur
|
Notez que dans le cas de cette méthode, la ligne commence à partir de zéro(0), et la colonne commence à un (1).
|
Enfin pour créer le fichier, nous devons instancier un objet writer, spécifique au type de tableau que nous voulons générer.
$writer = new PHPExcel_Writer_Excel2007($ workbook );
|
Nous donnons un nom à notre fichier, et l'enregistrons
$ records = ' ./fichier.xlsx ' ;
$writer ->save ($ records );
|
|
Vous prêterez une attention toute particulière à l'extension du fichier, en l'occurrence ici "xlsx".
|
2.2. Dans un autre format
Pour enregistrer le fichier dans un autre format, il faut juste 3 modifications au script précédent
2.2.1. Excel5
include ' PHPExcel/Writer/Excel5.php ' ;
. . .
$writer = new PHPExcel_Writer_Excel5();
. . .
$ records = ' ./fichier.xls ' ;
|
2.2.2. PDF
include ' PHPExcel/Writer/PDF.php ' ;
. . .
$writer = new PHPExcel_Writer_PDF();
$writer ->setSheetIndex (0 );
. . .
$ records = ' ./fichier.pdf ' ;
|
|
Dans la génération des fichiers de types PDF, HTML, il n'est possible que de travailler sur une seule feuille, et nous devons lui indiquer laquelle, via la méthode ->setSheetIndex()
|
2.2.3. HTML
include ' PHPExcel_Writer/HTML.php ' ;
. . .
$writer = new PHPExcel_Writer_HTML();
$writer ->setSheetIndex (0 );
. . .
$ records = ' ./fichier.html ' ;
|
2.2.4. CSV
include ' PHPExcel/Writer/CSV.php ' ;
. . .
$writer = new PHPExcel_Writer_CSV();
$writer ->setDelimiter (" , " );
$writer ->setSheetIndex (0 );
. . .
$ records = ' ./fichier.csv ' ;
|
|
Dans le cadre d'un fichier de type CSV, il faut en plus noter le séparateur, ce qui est le rôle de la méthode ->setDelimiter().
|
2.2.5. Excel 2007 - compatible 2003
Pour assurer une compatibilité avec Excel 2003, il suffit de mettre la méthode ->setOffice2003Compatibility(), à true.
$writer = new PHPExcel_Writer_Excel2007($ workbook );
$writer ->setOffice2003Compatibility (true );
$ records = ' ./fichier.xlsx ' ;
$writer ->save ($ records );
|
2.3. Afficher le tableur
Il est également possible de générer un tableur et de l'afficher plutôt que de l'enregistrer.
Pour se faire, il faut passer les entêtes à la sortie standard.
2.3.1. Excel 2007 sur le navigateur
include ' PHPExcel.php ' ;
include ' PHPExcel/Writer/Excel2007.php ' ;
$workbook = new PHPExcel;
$ sheet = $workbook ->getActiveSheet ();
$sheet ->setCellValue (' A1 ' , ' MaitrePylos ' );
$writer = new PHPExcel_Writer_Excel2007($ workbook );
header(' Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ' );
header(' Content-Disposition:inline;filename=Fichier.xlsx ' );
$writer ->save (' php://output ' );
|
Ici, le fichier va demander à être ouvert via votre logiciel de tableur.
Les autres possibilités sont :
Excel 5
header(' Content-type: application/vnd.ms-excel ' );
|
PDF
header(' Content-type: application/pdf ' );
|
CSV
header(' Content-type: text/csv ' );
|
HTML
header(' Content-type: text/html ' );
|
Ce document est issu de http://www.developpez.com et reste la
propriété exclusive de son auteur.
La copie, modification et/ou
distribution par quelque moyen que ce soit est soumise à l'obtention
préalable de l'autorisation de l'auteur.