Tutoriel sur le formattage

Tutoriel sur le formattage – Comment formatter des cellules dans une feuille de calcul

Qu'est-ce qu'un format ?

Un format est un objet de type Spreadsheet_Excel_Writer_Format. Ce format peut être appliqué à des cellules d'une feuille de calcul ; ces cellules héritent des propriétés du format (alignement de texte, couleur d'arrière-plan, couleur des bordures, etc.).

Utilisation

Les formats peuvent être créés directement par un nouvel appel. Vous devez créer un format en utilisant la méthode addFormat() d'un manuel de travail, en associant votre format à ce manuel de travail (vous pouvez utiliser ce format avec un autre manuel de travail).

Voyons comment addFormat() est utilisé :

Utilisation d'addFormat

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// Création d'un manuel de travail
$workbook = new Spreadsheet_Excel_Writer();

// Création du format
$format_bold =& $workbook->addFormat();
$format_bold->setBold();

?>

Ici, nous créons juste un format de mise en gras. Notez le signe ET commercial (&) qui apparait lorsque nous créons notre format.

Faire quelque chose d'utile !

Nous avons juste créé notre premier format, mais nous ne l'avons pas utilisé. Pas très élégant !

Admettons que vous voulez créer votre première feuille de calcul contenant des données. A ce point, lorsque vous allez présenter votre superbe création à votre patron, ceci risque d'arriver :

Le patron - Mmmmhhh, ca semble pas mal.

Vous - Oui, j'ai ajouté ces totaux comme vous me l'avez demandé.

Le patron - Mmmmhhh, vous savez, il va falloir personnaliser cette feuille de calcul...

Vous - Oui...

Le patron - Mmmmhhh, que pensez-vous de changer le style de ces en-têtes ci ?

Vous - ...

Bien sûr, il ne s'agit pas juste de ces en-têtes : "Pourquoi ne pas centre ce titre ?", "Pouvez-vous fusionner ces cellules ?", "que pensez-vous d'utiliser les couleurs de l'entreprises pour ces titres ?".

Il y a plusieurs façons de résoudre ces situations, mais dans ce tutoriel, nous allons nous attacher à vous faire conserver votre emploi...

Commençons le travail sur la feuille de calcul pour DotCom.com.

Premier exemple

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

// Nous avons besoin d'une feuille de travail dans laquelle nous allons placer nos données
$worksheet =& $workbook->addWorksheet();
// Ceci est notre titre
$worksheet->write(00"Bénéfices de Dotcom.Com"$format_bold);
// Et maintenant, les données
$worksheet->write(000);

?>

Ajoutons maintenant les couleurs de l'entreprise !

Second exemple

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('yellow');
$format_title->setPattern(1);
$format_title->setFgColor('blue');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(00"Bénéfices trimestriels de Dotcom.Com"$format_title);

// Ajoutons quelques chiffres
$worksheet->write(10"Trimestres"$format_bold);
$worksheet->write(11"Bénéfices"$format_bold);
$worksheet->write(20"T1");
$worksheet->write(210);
$worksheet->write(30"T2");
$worksheet->write(310);

$workbook->send('test.xls');
$workbook->close();
?>

Fusion de cellules

Si vous avez testé l'exemple précédent, vous avez pu noter que le titre a besoin de plusieurs cellules afin d'être correctement affiché, mais le format que nous avons appliqué ne l'est que pour la premier cellule. Notre titre n'apparait donc pas de façon la plus jolie...

Que pouvons-nous faire pour résoudre cela ? Vous pouvez toujours dire à votre patron que le titre vous parrait sympa tel que et qu'il devrait consulter un ophtalmologiste. Ou vous pouvez utiliser la fusion de cellule afin d'afficher correctement votre titre sur plusieurs cellules.

Pour cela, vous devez utiliser la méthode setAlign() avec 'merge' en tant qu'argument, et de créer quelques cellules vides que votre titre pourra utiliser en tant qu'arrière plan (il y aura une meilleure solution pour réaliser cela dans une future version de Spreadsheet_Excel_Writer).

Reprenons notre exemple :

Fusion de cellules

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('yellow');
$format_title->setPattern(1);
$format_title->setFgColor('blue');

// Fusion
$format_title->setAlign('merge');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(00"Bénéfices trimestriels de Dotcom.Com"$format_title);

// Plusieurs cellules vides pour rendre le tout plus jolie
$worksheet->write(01""$format_title);
$worksheet->write(02""$format_title);
$worksheet->write(10"Trimestres"$format_bold);
$worksheet->write(11"Bénéfices"$format_bold);
$worksheet->write(20"Q1");
$worksheet->write(210);
$worksheet->write(30"Q2");
$worksheet->write(310);

$workbook->send('test.xls');
$workbook->close();
?>