Was ist PhpSpreadsheet und warum wird es benötigt?
PhpSpreadsheet ist eine leistungsstarke PHP-Bibliothek für die Arbeit mit Tabellenkalkulationen. Sie ermöglicht das Lesen, Schreiben und Bearbeiten von Dateien in den Formaten CSV, XLS, XLSX, ODS und anderen. Im Gegensatz zu den integrierten PHP-Funktionen (z. B. fgetcsv) bietet PhpSpreadsheet einen objektorientierten Ansatz, automatische Kodierungsverarbeitung, Unterstützung für Stile, Formeln und große Datenmengen. Die Bibliothek eignet sich ideal für den Import/Export von Daten aus Webformularen, die Generierung von Berichten, die Migration zwischen Datenbanken und die Integration mit Excel/Google Sheets.
Installation
Die Installation erfolgt über Composer:
composer require phpoffice/phpspreadsheetNach der Installation binden Sie den Autoloader ein:
require 'vendor/autoload.php';Hauptfunktionen
- CSV lesen — Laden einer Datei in ein Spreadsheet-Objekt mit automatischer Erkennung des Trennzeichens.
- CSV schreiben — Erstellen und Speichern einer Datei mit Konfiguration von Trennzeichen, Anführungszeichen und BOM.
- Arbeiten mit Blättern — Erstellen, Löschen, Umbenennen und Kopieren von Blättern.
- Formatierung — Zellstile (Schriftarten, Farben, Rahmen, Ausrichtung).
- Formeln und Funktionen — Unterstützung für SUM, AVERAGE, IF und andere.
- Verarbeitung großer Datenmengen — Stream-Schreiben über Xlsx Writer zur Reduzierung des Speicherverbrauchs.
Codebeispiel: CSV lesen und schreiben
CSV-Datei lesen und Daten ausgeben:
use PhpOffice\\PhpSpreadsheet\\IOFactory;
$inputFileName = './data.csv';$spreadsheet = IOFactory::load($inputFileName);$worksheet = $spreadsheet->getActiveSheet();$data = $worksheet->toArray();
foreach ($data as $row) { echo implode(', ', $row) . "";}Daten in CSV schreiben:
use PhpOffice\\PhpSpreadsheet\\Spreadsheet;use PhpOffice\\PhpSpreadsheet\\Writer\\Csv;
$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Name');$sheet->setCellValue('B1', 'Email');$sheet->setCellValue('A2', 'Ivan');$sheet->setCellValue('B2', 'ivan@example.com');
$writer = new Csv($spreadsheet);$writer->setDelimiter(';');$writer->setEnclosure('"');$writer->save('./output.csv');Wann verwenden
PhpSpreadsheet wird in folgenden Fällen empfohlen:
- Unterstützung mehrerer Formate (CSV, XLSX, ODS) in einem Projekt erforderlich.
- Präzise Formatierung erforderlich (Farben, Schriftarten, Zellen verbinden).
- Arbeit mit Formeln oder großen Datensätzen (mehr als 10.000 Zeilen) notwendig.
- Sie bevorzugen einen OOP-Stil und möchten keine Low-Level-Parser schreiben.
Für einfache Aufgaben (z. B. Lesen einer einzelnen CSV mit bekannter Struktur) können die integrierten PHP-Funktionen ausreichen. Wenn das Projekt jedoch wächst und Flexibilität erfordert, wird PhpSpreadsheet zu einem unverzichtbaren Werkzeug.
Auch in der Bibliothek
Jetpack Compose für Kotlin: Vollständiger Leitfaden mit Beispielen
Kotlin-Anwendungsüberwachung: Bibliotheken und Tools zur Leistungsverfolgung
Caching in Go (Golang): Redis, In-Memory und andere Lösungen
Arbeiten mit Markdown in TypeScript: Bibliotheken, Parser und Werkzeuge