PhpSpreadsheet für PHP: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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)

Empfehlungen