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