PhpSpreadsheet für PHP: Komplettguide mit Beispielen
1. Was ist PhpSpreadsheet und wofür wird es benötigt?
PhpSpreadsheet ist eine leistungsstarke Bibliothek für PHP, die zum Lesen, Schreiben und Verwalten von Tabellenkalkulationen in Formaten wie Excel (XLSX, XLS), LibreOffice Calc (ODS), CSV, HTML und anderen entwickelt wurde. Sie ist der Nachfolger der beliebten, aber veralteten Bibliothek PHPExcel, deren Entwicklung 2017 eingestellt wurde. PhpSpreadsheet wurde komplett nach modernen PHP-Standards (PSR-4, PSR-7, PSR-12) neu geschrieben und unterstützt die Arbeit mit großen Datenmengen, komplexen Formeln, Stilen, Diagrammen und bedingter Formatierung.
Warum ist sie wichtig? In der Webentwicklung müssen häufig Daten aus Datenbanken in Excel-Berichte exportiert, hochgeladene Benutzertabellen importiert oder Rechnungen, Preislisten und Finanzdokumente generiert werden. PhpSpreadsheet ermöglicht dies programmatisch, ohne dass Office-Pakete auf dem Server installiert sein müssen. Es unterstützt über 30 Dateiformate, darunter XLSX, ODS, CSV, HTML, PDF (über externe Bibliotheken), und kann mit Formeln, bedingter Formatierung, verbundenen Zellen, Bildern und Kommentaren umgehen.
Die Bibliothek wird aktiv weiterentwickelt (über 3000 Sterne auf GitHub) und kommt in Projekten wie Laravel Excel, der PhpOffice Suite und vielen Unternehmenssystemen zum Einsatz. Sie ist ideal für die Erstellung von Berichten, Datenmigration, Automatisierung des Dokumentenflusses und die Integration in CRM/ERP-Systeme.
2. Installation
PhpSpreadsheet wird über Composer installiert, den Standard-Paketmanager für PHP. Stellen Sie sicher, dass PHP in Version 7.4 oder höher installiert ist (PHP 8.0+ wird empfohlen).
composer require phpoffice/phpspreadsheet
Nach der Installation finden Sie im Projekt den Ordner vendor und die Datei composer.json. Um die Bibliothek zu nutzen, binden Sie einfach den Autoloader ein:
require 'vendor/autoload.php';
Wenn Sie ein Framework wie Laravel oder Symfony verwenden, wird die Bibliothek in der Regel automatisch über Service Provider eingebunden.
3. Schnellstart – Minimales Arbeitsbeispiel
Erstellen wir ein einfaches Skript, das eine Excel-Datei mit einer Datentabelle generiert und zum Download anbietet:
getActiveSheet();
// 2. Zellen befüllen
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'E-Mail');
$sheet->setCellValue('A2', 'Max Mustermann');
$sheet->setCellValue('B2', 'max@example.com');
$sheet->setCellValue('A3', 'Erika Musterfrau');
$sheet->setCellValue('B3', 'erika@example.com');
// 3. Header für den Download setzen
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="benutzer.xlsx"');
header('Cache-Control: max-age=0');
// 4. Datei in den Ausgabestream schreiben
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit;
Dieser Code erstellt eine Datei namens benutzer.xlsx mit zwei Datenzeilen. Sie können sie in Excel oder LibreOffice Calc öffnen.
4. Wichtige Methoden/Funktionen/Klassen
4.1. Spreadsheet::__construct()
Signatur: new Spreadsheet()
Funktion: Erstellt ein neues, leeres Dokument mit einem standardmäßigen Arbeitsblatt.
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
echo $sheet->getTitle(); // "Arbeitsblatt" (Standardname)
Auch in der Bibliothek
SceneKit für Swift: Das komplette 3D-Tutorial
NodaTime für C# (.NET): Vollständiges Tutorial mit Beispielen
JSON-Verarbeitung in Java: Die Bibliotheken Jackson und Gson für die Datenarbeit