Start · Sprachen · PHP · Referenz · Vtiful\Kernel\Format

Vtiful\Kernel\Format

Klasse

Erstellt ein Zellformat-Objekt für die Formatierung von Zellen in Excel-Dateien über die <code>xlswriter</code>-Erweiterung.

Kategorie: misc

Signatur

class Format

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

Typ

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.';
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.';
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.

Siehe auch