01/09/2009 écrit par Cyril GRANDJEAN

Lors de mon stage, je devais créer un fichier XLS en utilisant PHP et MySQL. J’ai alors découvert la librairie PHPExcel qui permet la lecture et l’écriture des fichiers XLSX.

Le format XLSX est un format qui est supporté nativement par Excel 2007 et ultérieur. Pour les versions antérieurs, cela nécessite l’installation du module suivant : http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466.

Voici quelques lignes de codes qui vont vous permettre de créer votre premier fichier XLS en utilisant PHP.

  1. Télécharger et copier la librairie PHP Excel dans votre projet PHP
  2. Créer un fichier PHP en utilisant la syntaxe suivante :
/** Report des erreurs */
error_reporting(E_ALL);

/** Chemin vers notre dossier contenant la librairie **/
set_include_path(get_include_path() . PATH_SEPARATOR . 'PHPExcel/Classes/');

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

include 'PHPExcel/Writer/Excel2007.php';

// On crée notre objet Excel
$objPHPExcel = new PHPExcel();

//On ajoute notre contenu
//Attention, un utf8_encode() est nécessaire pour les caractères comme 'é', 'è', ..
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Ligne 1 Colonne 1');
$objPHPExcel->getActiveSheet()->setCellValue('A2', utf8_encode('Durée'));

//Gérer la taille de la colonne
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);

//Gérer le style de la police
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(10);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//Mettre une bordure sur une case
$objPHPExcel->getActiveSheet()->getStyle('A1')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

// Sauvegarder notre fichier xlsx
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('../data_xls/myfileXLS.xlsx');

Ce petit tutoriel permet uniquement d’exécuter les commandes de bases nécessaire à la création d’un fichier XLSLX. Pour des usages avancés : cliquez ici.