Premier fichier▲
Nous allons voir comment créer notre premier fichier au format Excel 2007.
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 donne 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 ».
Dans un autre format▲
Pour enregistrer le fichier dans un autre format, il faut juste trois modifications au script précédent.
Excel5▲
PDF▲
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▲
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';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▲
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▲
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');


