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.