Signatur
Beschreibung
Die Klasse Vtiful\Kernel\Format ist Teil der PHP-Erweiterung xlswriter und ermöglicht die Definition von Zellformaten für Excel-Dateien (XLSX). Mit ihr lassen sich Schriftarten, Farben, Ausrichtungen, Rahmen, Zahlenformate und andere Zellstile konfigurieren.
Ein Format-Objekt wird instanziiert und anschließend über Methoden wie bold(), fontSize(), fontColor(), align(), border() usw. konfiguriert. Das fertige Format-Handle wird dann beim Schreiben von Zellinhalten an die entsprechende Schreib-Methode des Excel-Objekts übergeben.
Da Format-Objekte intern an eine bestimmte Excel-Instanz gebunden sind, muss der Konstruktor stets eine Ressource der jeweiligen Arbeitsmappe erhalten. Mehrere Format-Objekte können für unterschiedliche Zellstile innerhalb eines Dokuments gleichzeitig verwendet werden.
- Unterstützt Schriftformatierung (Fett, Kursiv, Unterstrichen, Größe, Farbe)
- Unterstützt Hintergrundfarben, Rahmen und Ausrichtung
- Unterstützt benutzerdefinierte Zahlenformate
- Unterstützt Textumbruch und Zellen-Zusammenführung
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $handle Pflicht | resource | Die interne Ressource der Excel-Arbeitsmappe, die durch das Excel-Objekt bereitgestellt wird. Wird über $excel->getHandle() ermittelt. |
Rückgabewert
Beispiele
Fettgedruckter Text mit Schriftgröße und Farbe
<?php
use Vtiful\Kernel\Excel;
use Vtiful\Kernel\Format;
$config = ['path' => '/tmp'];
$excel = new Excel($config);
$sheet = $excel->fileName('formatbeispiel.xlsx')->header(['Name', 'Alter']);
// Format-Objekt an die Arbeitsmappe binden
$format = new Format($excel->getHandle());
$formatHandle = $format
->bold()
->fontSize(14)
->fontColor(Format::COLOR_RED)
->toResource();
// Formatierter Zellinhalt
$sheet->insertText(1, 0, 'Max Mustermann', null, $formatHandle);
$sheet->insertText(1, 1, 30, null, null);
$sheet->output();
echo 'Datei wurde erzeugt.';
Ausrichtung, Hintergrundfarbe und Rahmen kombinieren
<?php
use Vtiful\Kernel\Excel;
use Vtiful\Kernel\Format;
$config = ['path' => '/tmp'];
$excel = new Excel($config);
$sheet = $excel->fileName('stile.xlsx')->header(['Produkt', 'Preis']);
$format = new Format($excel->getHandle());
$headerFormat = $format
->bold()
->align(Format::FORMAT_ALIGN_CENTER, Format::FORMAT_ALIGN_VERTICAL_CENTER)
->background(Format::COLOR_YELLOW)
->border(Format::BORDER_THIN)
->toResource();
$sheet->insertText(0, 0, 'Produkt', null, $headerFormat);
$sheet->insertText(0, 1, 'Preis', null, $headerFormat);
$sheet->insertText(1, 0, 'Apfel', null, null);
$sheet->insertText(1, 1, 1.99, '0.00', null);
$sheet->output();
echo 'Formatierte Tabelle gespeichert.';
// Wichtig · Fallstricke
Hinweis: Das Format-Objekt muss stets vor dem Schreiben der Zelldaten erstellt werden. Eine nachträgliche Änderung bereits geschriebener Zellen ist nicht möglich.
Die Methode toResource() muss am Ende der Methodenkette aufgerufen werden, um ein für die Schreib-Methoden des Excel-Objekts verwertbares Handle zu erhalten. Ohne diesen Aufruf kann das Format nicht angewendet werden.
Die verfügbaren Konstanten für Farben (Format::COLOR_*), Ausrichtung (Format::FORMAT_ALIGN_*) und Rahmen (Format::BORDER_*) sind in der Klasse selbst definiert und entsprechen den Möglichkeiten der zugrunde liegenden libxlsxwriter-Bibliothek.
Diese Klasse ist nicht Teil der PHP-Standardbibliothek und erfordert die Installation der php-ext-xlswriter-Erweiterung.