dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Häufig benötigte Codeschnipsel

Wie erzeuge ich Excel-Dateien mit PHP?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

"Richtige" Excel-Dateien lassen sich kaum erzeugen, da .xls ein binäres, undokumentiertes proprietäres Microsoft-Format ist, das zudem von Version zu Version verändert wird.

Stattdessen kann man aber Textdateien erzeugen, deren Werte (Spalten) mit Tabulatoren und deren Zeilen mit CRLF (\r\n) getrennt sind, und diese Excel als .xls-Datei "unterschieben". Wichtig ist hierbei, als Dateityp tatsächlich eine Excel-(.xls)-Datei zu deklarieren - obwohl Excel diverse Importformate wie .csv (comma separated value) kennt, funktioniert es damit, vermutlich mangels definiertem Content-Type, nicht wie gewünscht.

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: inline; filename=\"excel.xls\"");
readfile($filename);                       // Datei 1:1 durchreichen
// echo "Titel (A1)\r\nA2\tB2\r\nA3\tB3";  // ODER mit PHP erzeugen

Anmerkung: Trotz der Angabe inline bietet der Browser i.d.R. einen Dialog an, der das direkte Öffnen oder aber das Speichern der Datei ermöglicht. Die Angabe attachment dagegen führte zu kuriosen, nicht brauchbaren Ergebnissen...

Ein gänzlich anderer Weg, Excel-Dateien zu erzeugen, führt über die COM-Funktionen von PHP4. Damit kann man eine Excel-Instanz direkt ansteuern und so u.a. eine echte .xls-Datei generieren. Wer das ausprobieren will, der lese diesen Artikel und besorge sich die Excel Class von Alain Samoun.

Wer auch auf Unix-Systemen echte Excel-Dateien erstellen will, sollte sich die Klasse Biff von Christian Novak ansehen. Hiermit ist es möglich direkt das binäre Excel-Format zu schreiben. Verschiedene Schriftformatierungen, sowie Zellenformatierungen, Kommentare und sogar Kopf- und Fusszeile werden unterstützt.

Im PEAR-Projekt entsteht eine Klasse zum Erzeugen von Excel-Dokumenten. Sie steht unter PEAR::Package::Spreadsheet_Excel_Writer zum Download verfügbar.

Wie erzeuge ich Excel-Dateien mit PHP?
http://www.php-faq.de/q-code-excel.html
 

dclp FAQ


Login