1. Einführung
  2. Tutorial über
    Formatierungen
  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

Tutorial über Formatierungen

Tutorial über Formatierungen – Wie Zellen in einem Spreadsheet formatiert werden.

Was ist ein Format?

Ein Format ist ein Objekt der Klasse Spreadsheet_Excel_Writer_Format. Ein Format kann auf Zellen innerhalb eines Spreadsheets angewendet werden, so dass die Zellen die Eigenschaften des Formates erben, wie z.B. Text-Ausrichtung, Hintergrundfarbe, Rahmenfarben, usw.

Benutzung

Ein Format kann nicht direkt durch einen new-Aufruf erzeugt werden. Sie erzeugen ein Format durch die Methode addFormat() eines Workbook. Dadurch wird das Format dem Workbook zugeordnet. Dieses Format kann nicht mit anderen Workbooks benutzt werden.

Werfen wir einen Blick auf die Benutzung der addFormat()-Methode:

addFormat-Benutzung

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

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

// Creating the format
$format_bold =& $workbook->addFormat();
$format_bold->setBold();

?>

Es wird ein Format für den Fettdruck erzeugt. Beachten Sie die Benutzung des Kaufmanns-Und (&) das bei der Erzeugung des Formats auftaucht. Wenn Sie es nicht benutzen, dann werden alle Formateigenschaften ignoriert, die Sie setzen.

Sinnvolle Aktionen

Wir haben zwar unser erstes Format erzeugt, aber bis jetzt nicht benutzt. Das werden wir jetzt ändern anhand eines Beispiels für DotCom.com.

Erstes Beispiel

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

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

// We need a worksheet in which to put our data
$worksheet =& $workbook->addWorksheet();
// This is our title
$worksheet->write(00"Profits for Dotcom.Com"$format_bold);
// And now the data
$worksheet->write(000);

?>

Zuerst wollen wir die Firmen-Farben benutzen, um einige Zellen und den Text darin einzufärben.

Zweites Beispiel

<?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"Quarterly Profits for Dotcom.Com"$format_title);
// While we are at it, why not throw some more numbers around
$worksheet->write(10"Quarter"$format_bold);
$worksheet->write(11"Profit"$format_bold);
$worksheet->write(20"Q1");
$worksheet->write(210);
$worksheet->write(30"Q2");
$worksheet->write(310);

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

Zellen verbinden

Im ersten Beispiel befindet sich der Titel in der ersten Zellen, benötigt aber aufgrund seiner Länge mehrere Zellen, weshalb nur ein Teil formatiert ist, was häßlich aussieht.

Das werden wir jetzt ändern, der Titel soll sich über mehrere Zellen erstrecken.

Dazu wird die Methode setAlign() benutzt mit merge als Argument, und es werden zusätzliche leere Zellen erzeugt, mit der entsprechende Hintergrund-Formatierung. In zukünftigen Versionen von Spreadsheet_Excel_Writer wird das Erstellen einfacher.

Wenden wir dies auf unser Beispiel an:

Zellen verbinden

<?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');
// let's merge
$format_title->setAlign('merge');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(00"Quarterly Profits for Dotcom.Com"$format_title);
// Couple of empty cells to make it look better
$worksheet->write(01""$format_title);
$worksheet->write(02""$format_title);
$worksheet->write(10"Quarter"$format_bold);
$worksheet->write(11"Profit"$format_bold);
$worksheet->write(20"Q1");
$worksheet->write(210);
$worksheet->write(30"Q2");
$worksheet->write(310);

$workbook->send('test.xls');
$workbook->close();
?>
Wie Excel-Dateien erzeugt werden. (Previous) Calls finalization methods for the workbook (Next)
Last updated: Sun, 19 Dec 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 ...............