Arbeiten mit CSV in PHP: Bibliothek PhpSpreadsheet

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

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/phpspreadsheet

Nach 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.

Empfehlungen