Créer un document Excel (xls) avec PHP
Posté le Friday 9 December 2011 | Catégories : PHP
Spreadsheet_Excel_Writer est un package PEAR qui permet, comme son nom l'indique, de créer des feuilles de calcul Excel. Pour l'installer, rien de plus simple :
sudo pear install -f Spreadsheet_Excel_Writer
L'utilisation est également simple, avec une particularité cependant. Les feuilles excel créées avec Spreadsheet_Excel_Writer sont encodées au format ISO-8859-1, alors que PHP utilise un encodage UTF-8. Pour que les caractères accentués s'affichent correctement, il faut donc utiliser la fonction utf8_decode($valeur) au moment d'écrire une valeur dans une cellule, comme le montre l'exemple complet ci-dessous :
<?php
include 'Spreadsheet/Excel/Writer.php';
$data = array(
array('', 'Math', 'Geo', 'Science'),
array('John', 24, 54, 38),
array('Marc', 67, 22, 57),
array('Tim', 69, 32, 58),
array('Tom', 81, 78, 68)
);
// Créer le fichier
$excel = new Spreadsheet_Excel_Writer();
// Ajouter une feuille de calcul
$sheet = $excel->addWorksheet('Feuille 1');
// Ajouter les données
foreach ($data as $line => $row) {
foreach ($row as $col => $value) {
// write(numéro de ligne, numéro de colonne, valeur)
$sheet->write($line, $col, utf8_decode($value));
}
}
// On l'enverra directement au navigateur
// (sans l'écrire sur le disque du serveur)
$excel->send('résultats.xls');
// Ne pas oublier de fermer le fichier
// Ce n'est que maintenant qu'il est envoyé au navigateur
if ($excel->close() !== true) {
echo 'ERREUR!';
}
?>
La documentation complète se trouve sur le site du projet PEAR.