Diese Kategorie als RSS abonnieren

Kategorie: Blog::Web-Entwicklung::PHP

 

erstellt am 25.06.2008 um 11:17h

Excel lesen/schreiben mit COM-Objekten

Excel IconWährend eines Projektes musste ich Daten aus Excel lesen und neue Excel-Dateien erstellen.

Schreiben kann man mit dem Spreadsheet_Excel_Writer[1] aus dem PEARepository. Beim lesen kann man den PHP-ExcelReader[2] hsoted by SourceForge benutzen.

Wenn man allerdings komplizierte Excel-Dateien erstellen möchte, die viele Grafiken, etc. enhalten stößt man mit dem Spreadsheet_Excel_Writer[1] schnell an die Grenzen.
Die Benutzung eines Excel-Templates hat sich bei dem Projekt angeboten. Wenn man PHP auf einem Windows-Server laufen lässt kann man sich der COM-Objekte bedienen, die alle wichtigen Excel-Operationen ausführen können.

Leider habe ich zum Thema COM-Objekte & Excel sehr wenige Quellen im Internet gefunden.

Neues Excel-COM-Objekt instanzieren
$excel = new COM("Excel.application");

Bestehende Excel-Datei zu öffnen
$workbook = $excel->application->workbooks->open(string: $path_file);
Neues Arbeitsblatt erstellen, wenn keine Datei geöffnet werden soll
$workbook = $excel->application->workbooks->add();

Tabelle auswählen
$sheet = $workbook->worksheets(string: $sheetname);

Neue Tabelle erstellen und benennen
$sheet = $workbook->worksheets->add();
$sheet->name = string: $sheetname;



Mehr folgt demnächst...




Quellen: Latest Update: 18.07.2008

 

 

Kommentare

am 01.07.2008 um 17:43h von MisterExcel erstellt


Ich habe gerade das gleiche Problem. Ein Kunde möchte extrem viele Daten aus vielen verschiedenen Excel-Dateien lesen und diese dann nach etlichen Operationen, die per PHP & MySQL gemacht werden, wieder in Excel-Dateien exportieren.
Der Kunde möchte die erstellten Excel-Dateien, dann an seine Kunden verschicken. Also müssen diese ordentlich aussehen. Es gibt schon einige Templates die benutzt werden sollen. Ich habe schon angefangen, die Templates hart-codiert per Excel-Writer nachzubauen. Das ist natürlich eine Sch*§%* arbeit und das Ergebniss ist nicht 100%ig.

Die COM-Objekten scheinen hier ziemlich interessant zu sein (gesetzt den Fall man hat einen Windows-Server am laufen).

Ich bin gespannt auf Deine weiteren Ausführungen zum Thema COM-Objekte

 

am 05.07.2008 um 21:23h von chp erstellt


Hi MisterExcel,

danke für Deinen Kommentar. Habe leider gerade keine Zeit, den Beitrag weiterzuführen. Sollte ihn aber bis spätestens Ende Juli fertig haben.

 

am 11.07.2008 um 17:18h von MisterExcel erstellt


Bis jetzt noch nichts passiert.

Ich hoffe, dass noch was kommt. Ich brauche zwar gerade kein Excel->PHP->Excel, aber die COM-Objekten interessieren mich doch sehr.
Hoffe auf ein gutes Tutorial, eine Klasse oder ein paar gute Funktionen...

 

am 18.07.2008 um 21:29h von chp erstellt


Hi MisterExcel,

der Anfang ist gemacht. Zugegeben habe ich bis jetzt die Befehle nur stupide herunter geschrieben. Aber eine Strukturierung kommt noch, versprochen!

 

Neuer Kommentar

Name/E-Mail
Sicherheitscode:
This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

E-Mail Benachrichtigung

Sie können hier Ihre E-Mail Adresse hinterlegen, bei jeder Änderung oder bei einem neuen Kommentar erhalten Sie eine kurze E-Mail.
Ihre E-Mail Adresse wird nur in Verbindung mit diesem Beitrag in unserer Datenbank gespeichert. Sie wird nicht zu Werbezwecken benutzt, an Dritte weitergegeben oder an irgendeiner Stelle veröffentlicht.

E-Mail:
Sicherheitscode:
This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

Windows PHP installieren Fehler Netbook Microsoft USB deaktivieren Pahlmann