Introduction

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).

Voici un exemple concret :

Utilisation typique

<?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(00'Nom');
$worksheet->write(01'Age');
$worksheet->write(10'John Smith');
$worksheet->write(1130);
$worksheet->write(20'Johann Schmidt');
$worksheet->write(2131);
$worksheet->write(30'Juan Herrera');
$worksheet->write(3132);

// 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 :

Sauvegarder dans un fichier

<?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(00'Nom');
$worksheet->write(01'Age');
$worksheet->write(10'John Smith');
$worksheet->write(1130);
$worksheet->write(20'Johann Schmidt');
$worksheet->write(2131);
$worksheet->write(30'Juan Herrera');
$worksheet->write(3132);

// 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.