Magazine Internet

PHPExcel : Créez ou importez des documents Excel 2007 en PHP

Publié le 16 septembre 2011 par Avi Teboul

Dans mon boulot, j’ai un jour été confronté au problème d’un client : exporter des données dans un tableau Excel. Il existe quelques librairies qui le font plus ou moins bien, j’ai retenu pour vous la meilleure, selon mon expérience.

PHPExcel : Créez ou importez des documents Excel 2007 en PHP

Non seulement cette librairie permet d’exporter au format Excel 97 (.xls), Excel 2007 (.xlsx), CSV, HTML et PDF, elle permet aussi d’importer les informations contenues dans un classeur existant.

Au niveau des fonctionnalités, PHPExcel en propose un large choix, toutes très bien documentées.

Quelques-uns des points clés à retenir :

- Ecriture et lecture de classeurs Excel
- Le traitement des données se passe en mémoire, gain de rapidité.
- Permet d’utiliser plusieurs feuilles au sein d’un même classeur
- API claire et plutôt simple
- Permet d’utiliser des images, des formules, de choisir le format des cellules

Pour une liste exhaustive des fonctions proposées, je vous invite à regarder ici.

Exemple d’utilisation de la libraire :

<?php
/** Afficher toutes les erreurs */
error_reporting(E_ALL);

/** Ajoutons les classes PHPExcel à l'include_path **/
ini_set('include_path', ini_get('include_path').';../Classes/');

/** PHPExcel */
include 'PHPExcel.php';

/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';

// Créer un nouvel objet PHPExcel
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();

// Ajoutons les propriétés du classeur
echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");

// Ajoutons quelques données
echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');

// Renommer le nom de la feuille
echo date('H:i:s') . " Rename sheet\n";
$objPHPExcel->getActiveSheet()->setTitle('Simple');

// Enregistrer le tout dans un document .xlsx
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));

// Terminé
echo date('H:i:s') . " Done writing file.\r\n";

Vous trouverez le tout sur la page Codeplex du projet.

Vous avez aimé cet article ?
Je vous invite à visiter Geekzine.info, un blog d’actualités geek et high-tech, les buzz du moment et les dernières tendances sur la toile.

Retour à La Une de Logo Paperblog

A propos de l’auteur


Avi Teboul 600 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog