1. Introduction
  2. Tutoriel sur le
  3. Workbook::close
  4. Workbook::&addWorksheet
  5. Workbook::&addFormat
  6. Workbook::&setTempDir
  7. Workbook::setCustomColor
  8. Worksheet::getName
  9. Worksheet::
  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::
  24. Worksheet::
  25. Worksheet::setMargins
  26. Worksheet::setMargins_LR
  27. Worksheet::setMargins_TB
  28. Worksheet::setMarginLeft
  29. Worksheet::
  30. Worksheet::setMarginTop
  31. Worksheet::
  32. Worksheet::repeatRows
  33. Worksheet::repeatColumns
  34. Worksheet::printArea
  35. Worksheet::hideGridlines
  36. Worksheet::
  37. Worksheet::fitToPages
  38. Worksheet::
  39. Worksheet::
  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


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.


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

require_once 'Spreadsheet/Excel/Writer.php';

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

// Envoi des en-têtes HTTP

// Création d'une feuille de travail
$worksheet =& $workbook->addWorksheet('My first worksheet');

// Les données actuelles
$worksheet->write(10'John Smith');
$worksheet->write(20'Johann Schmidt');
$worksheet->write(30'Juan Herrera');

// Envoi du fichier

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

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

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(10'John Smith');
$worksheet->write(20'Johann Schmidt');
$worksheet->write(30'Juan Herrera');

// Nous devons toujours explicitement fermer le manuel de travail

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.

Spreadsheet_Excel_Writer (Previous) Comment formatter des cellules dans une feuille de calcul (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: me@suyashjain.com
i am getting the following error.

PHP Fatal error: Call-time pass-by-reference has been removed in Spreadsheet/Excel/Writer/Worksheet.php on line 2490

i am running ubuntu 14 with the following php

php -v
PHP 5.5.9-1ubuntu4.5 (cli) (built: Oct 29 2014 11:59:42)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Note by: daniel-jj@gmx.de
If you have issues with this PEAR package check this out: http://phpexcel.codeplex.com/
Note by: info@joomla-r-us.com
Thanks for improving the original spreadsheet-excel-writer!

I have integrated the PEAR spreadsheet-excel-writer into a Joomla component. The component allows you to define Worksheets which are populated with data from the database, by specifying your own custom SQL queries. One or more Worksheets can then be assembled into a Workbook - all in a nice user friendly UI within the Joomla framework.

If you have a Joomla website, or can set one up, please check out:

Note by: holubecml@gmail.com
Is it possible to let the script generate an xls file from html form and send it automatically as an attachement in an email?
Thans a lot,
Miro, Slovakia
Note by: fatrandy13@yahoo.com (Mike M.)
A simple chart/graph function would be great... You specify the rows and columns for the chart and chart type (bar, line, pie, etc...)

// make it a worksheet of its own
$chart_worksheet =& $workbook->addWorksheet($my_chart);

// add it to an existing worksheet...
$worksheet->addGraph(int $startCol, int $endCol, int $startRow, int $endRow, mixed $graphType);
Note by: chris@pineconehill.com
As of PHP5, all objects are passed as reference, so there's no need to use '=&'.
Note by: alangrus
CSVtoXLS.php Program Notes

I am often asked to provide output from the database in a spreadsheet XLS file. I built a shell around spreadsheet-excel-writer to use as a production conversion tool, to accomplish high format XLS file creation from an ASCII CSV file. As a PHP program, it should work on any O/S that you can install PHP 4.3 or better onto.

CSVtoXLS.php is a PHP utility to convert CSV data into business class XLS spreadsheet files, tested as compatible with OpenOffice 2.0 Calc and Excel 2000. It is provides for a high level of spreadsheet formatting and also offers formulas. CSVtoXLS.php takes advantage of those features and provides meaningful formatting and a simple Column SUM automatically generated at the bottom of any Decimal Column.

See Narrative and Download at http://performantsystems.com/CSVtoXLS.html
- Alan Gruskoff