mercredi 26 novembre 2014

PHP : API pour générer un fichier EXCEL


Comment générer un fichier EXCEL en PHP ?

En utilisant PHPExcel.

A noter que cette API supporte la génération de fichiers XLSX.

Dans un premier temps vous téléchargez cette API (ZIP).

Ensuite vous copiez le répertoire <Classes> dans votre projet PHP.

Comment utiliser cette API ?

Voici un exemple d'utilisation qui va générer un fichier XLXS :

// ne pas oublier d'inclure les classes concernées
include "Classes/PHPExcel.php";
include "Classes/PHPExcel/Writer/Excel2007.php"; 

// création de mon classeur
$objPHPExcel = new PHPExcel();

$objPHPExcel->getProperties()->setCreator("moi");
$objPHPExcel->getProperties()->setLastModifiedBy("moi");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX monfichier");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX monfichier");

// premier onglet activé
$objPHPExcel->setActiveSheetIndex(0);

// titre du document
$i = 1;

$objPHPExcel->getDefaultStyle()->getFont()->setName('Tahoma');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(12);
$objPHPExcel->getDefaultStyle()->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->SetCellValue('A' . $i, "mon titre");
$objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getFont()->getColor() ->setARGB(PHPExcel_Style_Color::COLOR_BLUE);

// entête
$i = 3;

$objPHPExcel->getDefaultStyle()->getFont()->setName('Tahoma');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
$objPHPExcel->getDefaultStyle()->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(25);

$objPHPExcel->getActiveSheet()->SetCellValue('A' . $i, utf8_encode('colonne 1 : actualité'));
$objPHPExcel->getActiveSheet()->SetCellValue('B' . $i, 'colonne 2');
$objPHPExcel->getActiveSheet()->SetCellValue('C' . $i, 'colonne 3');
etc ...

// contenu
$i++;

$objPHPExcel->getDefaultStyle()->getFont()->setName('Tahoma');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
$objPHPExcel->getDefaultStyle()->getFont()->setBold(false);

$objPHPExcel->getActiveSheet()->SetCellValue('A' . $i, "contenu 1");
$objPHPExcel->getActiveSheet()->SetCellValue('B' . $i, "contenu 2");
$objPHPExcel->getActiveSheet()->SetCellValue('C' . $i, "contenu 3");
etc...

// nom de l'onglet
$objPHPExcel->getActiveSheet()->setTitle('onglet 1');

// sauver fichier
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

$file = "monfichier.xlsx";
$objWriter->save($file);

Pour plus d'informations sur toutes les options (et elles sont nombreuses), veuillez consulter la documentation.

Aucun commentaire:

Enregistrer un commentaire