Introduction -- Comment générer des fichiers Excel
Qu'est-ce Spreadsheet_Excel_Writer?
Spreadsheet_Excel_Writer est un utilitaire pour
créer des fichiers Excel sans avoir besoin des composants COM. Les fichiers
générés par l'actuel version de Spreadsheet_Excel_Writer
correspond au format Excel 5 (BIFF5), toutes les fonctionnalités jusqu'à cette version
doivent donc être disponibles.
Utilisation
L'utilisation la plus commune de Spreadsheet_Excel_Writer
est de mettre beaucoup d'informations dans un formulaire de feuille de calcul,
qui sera facilement manipulable avec un programme de manipulation de feuilles
de calcul comme Excel (ou OpenOffice).
<?php
require_once 'Spreadsheet/Excel/Writer.php';
// Création d'un manuel de travail
$workbook = new Spreadsheet_Excel_Writer();
// Envoi des en-têtes HTTP
$workbook->send('test.xls');
// Création d'une feuille de travail
$worksheet =& $workbook->addWorksheet('My first worksheet');
// Les données actuelles
$worksheet->write(0, 0, 'Nom');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);
// Envoi du fichier
$workbook->close();
?>
La première chose à noter est que nous créons un manuel de travail avant d'ajouter
une feuille de travail. Toutes les feuilles de travail sont contenues dans un manuel de travail,
et un manuel de travail contient plusieurs feuilles de travail.
Une autre chose importante, que vous devez avoir en tête lors de la programmation
avec Spreadsheet_Excel_Writer, est l'utilisation du signe
& (ET commercial) lors de la création de la feuille de travail. L'utilisation du ET commercial
signifie que nous référençons un objet WorkSheet au lieu de le copier. Si vous ne savez pas
ce que cela signifie, ne vous en faite pas, tout ce dont vous avez besoin de vous souvenir
est de toujours utiliser ce "&" lors de l'appel à addWorksheet() pour créer une feuille de travail ou addFormat() pour créer un format.
Sauvegarde dans un fichier
Vous avez du remarquer également la ligne suivante :
// Envoi des en-têtes HTTP
$workbook->send('test.xls');
Ce qui signifie que nous envoyons notre feuille de calcul au navigateur.
Et si nous voulons uniquement sauvegarder cette feuille de calcul sur notre
machine ? Vous n'avez qu'à ommettre cette ligne et passer un chemin de fichier
valide au constructeur de WorkBook.
Par exemple, si vous voulez sauvegarder la feuille de calcul créée dans notre
premier exemple dans un fichier nommé 'test.xls', nous devons le faire comme cela :
<?php
require_once 'Spreadsheet/Excel/Writer.php';
// Nous donnons un chemin à notre fichier ici
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('My first worksheet');
$worksheet->write(0, 0, 'Nom');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);
// Nous devons toujours explicitement fermer le manuel de travail
$workbook->close();
?>
Plus d'exemples
Si vous voulez avoir plus d'exemples concernant le formattage (police de
caractères, couleur des cellules, alignement du texte, etc...) avec
Spreadsheet_Excel_Writer, vous pouvez consulter
le tutoriel sur le formattage
ici.