IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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);
                
warning 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

include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
                
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();
                
warning 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');
                
warning 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
info 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);
                
warning 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);//Une seule feuille possible
...
$records = './fichier.pdf';
                    
warning 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);//Une seule feuille possible

...
$records = './fichier.html';
                    

2.2.4. CSV


include 'PHPExcel/Writer/CSV.php';
...
$writer = new PHPExcel_Writer_CSV();
$writer->setDelimiter(",");//l'opérateur de séparation est la virgule
$writer->setSheetIndex(0);//Une seule feuille possible

...
$records = './fichier.csv';
                    
warning 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');
                        
 

Valid XHTML 1.0 TransitionalValid CSS!

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.