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();
?>