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

Introduction à PHPExcel

Image non disponible


précédentsommairesuivant

Premier fichier

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

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 donne 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 ».

Dans un autre format

Pour enregistrer le fichier dans un autre format, il faut juste trois modifications au script précédent.

Excel5

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

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().

HTML

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

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

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().

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

Afficher le tableur

Il est également possible de générer un tableur et de l'afficher plutôt que de l'enregistrer.
Pour ce faire, il faut passer les entêtes à la sortie standard.

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.