1. Introduction
  2. Tutoriel sur le
    formattage
  3. Workbook::close
  4. Workbook::&addWorksheet
  5. Workbook::&addFormat
  6. Workbook::&setTempDir
  7. Workbook::setCustomColor
  8. Worksheet::getName
  9. Worksheet::
    setInputEncoding
  10. Worksheet::select
  11. Worksheet::activate
  12. Worksheet::setFirstSheet
  13. Worksheet::protect
  14. Worksheet::setColumn
  15. Worksheet::setSelection
  16. Worksheet::freezePanes
  17. Worksheet::thawPanes
  18. Worksheet::setPortrait
  19. Worksheet::setLandscape
  20. Worksheet::setPaper
  21. Worksheet::setHeader
  22. Worksheet::setFooter
  23. Worksheet::
    centerHorizontally
  24. Worksheet::
    centerVertically
  25. Worksheet::setMargins
  26. Worksheet::setMargins_LR
  27. Worksheet::setMargins_TB
  28. Worksheet::setMarginLeft
  29. Worksheet::
    setMarginRight
  30. Worksheet::setMarginTop
  31. Worksheet::
    setMarginBottom
  32. Worksheet::repeatRows
  33. Worksheet::repeatColumns
  34. Worksheet::printArea
  35. Worksheet::hideGridlines
  36. Worksheet::
    printRowColHeaders
  37. Worksheet::fitToPages
  38. Worksheet::
    setHPagebreaks
  39. Worksheet::
    setVPagebreaks
  40. Worksheet::setZoom
  41. Worksheet::setPrintScale
  42. Worksheet::write
  43. Worksheet::writeNumber
  44. Worksheet::writeString
  45. Worksheet::writeNote
  46. Worksheet::writeBlank
  47. Worksheet::writeFormula
  48. Worksheet::writeUrl
  49. Worksheet::setRow
  50. Worksheet::mergeCells
  51. Worksheet::insertBitmap
  52. Worksheet::setOutline
  53. Spreadsheet_Excel_Writer
  54. send
  55. rowcolToCell
  56. Format::setAlign
  57. Format::setVAlign
  58. Format::setHAlign
  59. Format::setMerge
  60. Format::setBold
  61. Format::setBottom
  62. Format::setTop
  63. Format::setLeft
  64. Format::setRight
  65. Format::setBorder
  66. Format::setBorderColor
  67. Format::setBottomColor
  68. Format::setTopColor
  69. Format::setLeftColor
  70. Format::setRightColor
  71. Format::setFgColor
  72. Format::setBgColor
  73. Format::setColor
  74. Format::setPattern
  75. Format::setUnderline
  76. Format::setItalic
  77. Format::setSize
  78. Format::setTextWrap
  79. Format::setTextRotation
  80. Format::setNumFormat
  81. Format::setStrikeOut
  82. Format::setOutLine
  83. Format::setShadow
  84. Format::setScript
  85. Format::setFontFamily

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();
?>
Comment générer des fichiers Excel (Previous) Appel les méthodes de finalisation d'un manuel de travail (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: ngiraldo@securities.com
Excel 2010 does open the file correctly.

You just have to add this before creating the worksheets:

$workbook->setVersion(8);

Note by: shusting@aeteam.net
Windows 7 Excel 2010 does not open the Excel downloads generated by this PHP code (while Excel in Win XP and Vista do).

Someone confirmed this, saying, "Yes, it seems that Excel will no longer open files with the .xls extension if they are formatted as TAB-delimited text or CSV."

In previous versions of Windows, the file downloaded and opened in Excel fine. But in the 2010 scenario in Win 7, for the same files, a dialog pops up with, "The document is corrupt and cannot be opened. To try and repair it, use the Open and Repair command in the Open dialog box and select Extract Data when prompted." Following these directions fails silently.

Is there an update we should be aware of for Excel 2010 in Win 7?
Note by: pratiksha88.j@gmail.com
Hi, I tried this code but i am getting my webpage contents printed to the excel sheet. any help really appreciated.

I installed spreadsheet and ole latest versions.
here is my code

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

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();

// sending HTTP headers
$workbook->send('test.xls');

// Creating a worksheet
$worksheet =& $workbook->addWorksheet('My first worksheet');

// The actual data
$worksheet->write(00'Name');
$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);

// Let's send the file
$workbook->close();
?>
Note by: zuraforl2@gmail.com
(Spreadsheet/Excel/Writer.php)

for this download http://pear.php.net/package/Spreadsheet_Excel_Writer/download
Note by: mustang342891@GMAIL.com
(Spreadsheet/Excel/Writer.php) WHERE THIS FILE ...............