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

Introduction à PHPExcel

Image non disponible

Introduction à PHPExcel

Image non disponible


précédentsommairesuivant

Premier fichier

Nous allons voir comment créer notre premier fichier au format Excel 2007

2.1. MaitrePylos en A1

 
Sélectionnez
					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

 
Sélectionnez
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';

Ensuite nous instancions notre objet PHPExcel

 
Sélectionnez
$workbook = new PHPExcel;

Nous activons la feuille sur laquelle nous allons travailler (la feuille par défaut), grâce à  la méthode ->getActiveSheet().

 
Sélectionnez
$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()

 
Sélectionnez
$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.

 
Sélectionnez
$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.

 
Sélectionnez
$writer = new PHPExcel_Writer_Excel2007($workbook);

Nous donnons un nom à  notre fichier, et l'enregistrons

 
Sélectionnez
$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

 
Sélectionnez
include 'PHPExcel/Writer/Excel5.php';
...
$writer = new PHPExcel_Writer_Excel5();
...
$records = './fichier.xls';

2.2.2. PDF

 
Sélectionnez
include 'PHPExcel/Writer/PDF.php';
...
$writer = new PHPExcel_Writer_PDF();
$writer->setSheetIndex(0);//Une seule feuille possible
...
$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

 
Sélectionnez
include 'PHPExcel_Writer/HTML.php';
...
$writer = new PHPExcel_Writer_HTML();
$writer->setSheetIndex(0);//Une seule feuille possible

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

2.2.4. CSV

 
Sélectionnez
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';

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.

 
Sélectionnez
$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

 
Sélectionnez
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

 
Sélectionnez
header('Content-type: application/vnd.ms-excel');

PDF

 
Sélectionnez
header('Content-type: application/pdf');

CSV

 
Sélectionnez
header('Content-type: text/csv');

HTML

 
Sélectionnez
header('Content-type: text/html');

précédentsommairesuivant

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.