Ja was so banal klingt, ist es nicht – gerade nicht in einer OpenSource Sprache wie PHP.
Aber daran soll es nicht scheitern: OpenOffice hat bewiesen dass man auch mit OpenSource Software Proprietär Dateiformate lesen und schreiben kann.
Bis vor 1-2 Jahren gab es innerhalb von PEAR nur die Spreadsheet_Excel_Writer Klasse womit man Excel 97 schreiben konnte.
Doch jetzt stieß ich auf das Problem das ich gern eine ExcelVorlage mit Daten füllen wollte, welche ich dann zum Client sende bzw. speicherte.
Dabei gab es diverse Klassen zum Lesen der Klasse – aber dabei würde das Format verloren gehen. Und so stieß ich auf die PHPExcel Klasse – und bin seit dem begeistert!!! 😀
Die Klasse ist 1. unter der LGPL und kann so ziemlich alles 🙂 unter PHP!
Sie kann Excel 97, 2003 und 2007 lesen und schreiben. Es gibt ferner Reader/Writer Klassen für CSV, PDF und HTML und einen serializer! Und dank OOP auch individuell erweiterbar durch neue Reader/Writer Klassen.
In dem aktuellem Projekt von mir, kann ich so mit EINER Zeile die Excel laden, und mit weiteren 2 Zeilen meine Daten ändern und nachdem init() des Writers mit SAVE() die Excel neu speichern.. Das ist einfach genial und treu dem OOP Prinzip 🙂
Desweiteren ist das Projekt ERSTKLASSIG dokumentiert!
Eine kleine Tücke hat die Klasse leider noch 🙂 der Writer nutzt die tempnam() Funktion von PHP die eine Temporäre Datei anlegen soll.. das ist ja normalerweise /tmp – im SAFE Mode allerdings nicht erreichbar. Deswegen gibt´s noch ein Hintertürchen (was leider nicht im IWriter steht!) aber für Excel5 Writer verfügbar ist (auch laut API):
$objWriter->setTempDir("../temp");
somit kann man dem Writer sagen dass er ein alternatives Temp-Verzeichnis nutzen soll.
Links:
Bin jetzt auch auf PHPExcel gestoßen. Will es allerdings noch in Zend einbinden und gucke gerade rum, was noch so für Starthilfen gibt 🙂
So bin ich grad hierher gekommen. Die Beschreibung macht jedenfalls Mut, es schnell umzusetzen 😉