phpbar.de logo

Mailinglisten-Archive

[php] PHP -> COM -> Excel

[php] PHP -> COM -> Excel

Andreas Stagl a.stagl at gmx.at
Don Feb 19 12:37:56 CET 2004


Hallo allesamt,

hab ein kleines Problem bei der Kommunikation zwischen PHP und Excel über 
COM...

Und zwar hab ich ein Excel-Dokument, welches ein Makro enthält, das die 
Verbindung zu einer Oracle-DB aufbaut, diverse Daten ausliest, einen 
XLS-Report erstellt und diesen schlussendlich abspeichert.

Wenn ich nun über PHP ein Excel-COM-Objekt erstelle, darin das erwähnte 
XLS-File lade und das Makro eben über PHP und COM anstosse, haut leider 
irgendwie die Formatierung von numerischen Werten nicht hin (sprich: 
anstatt 100.000,00 steht dann 100000,000 im gespeicherten XLS-File). Dabei 
spielt es keine Rolle, ob ich das PHP Script über die Kommando-Zeile 
anstosse oder als WebSeite ansurfe.

Wenn ich allerdings das Makro manuell aus der Excel-Applikation heraus 
starte, klappt die Formatierung im generierten XLS-File einwandfrei.

Dachte mir deshalb, dass dies evtl ein generelles COM-Problem sein könnte 
und hab daraufhin noch weitere Tests in diese Richtung unternommen:

1) Eine C++ Applikation, die ebenfalls über COM das XLS öffnet und das 
Makro startet
2) Ein Visual-Basic-Script (.vbs), das über den Windows Scripting Host 
läuft und dann ebenfalls mit COM arbeitet

In beiden Fällen war die Formatierung in Ordnung, was mich zu dem Schluss 
bringt, dass die COM-Implementierung in PHP für mein Problem verantwortlich 
zu sein scheint.

Hab das Problem nun vorübergehend so gelöst, dass ich jetzt nicht mehr 
direkt mit PHP ein Excel-Objekt erstelle, sondern per PHP und exec() ein 
.vbs-File starte, welches dann letztendlich mit Excel und dem Makro 
kommuniziert... ist zwar ein Umweg, aber es funktioniert.

Meine Umgebung: Win2k (dt), Apache 1.3.29, PHP 4.3.4 als Modul, Office 2000 
Premium (dt)

Hat jemand von Euch schon ähnliche Erfahrungen gemacht bzw hat einen Rat 
für mich?

Schon mal Danke im Voraus & liebe Grüße aus Wien,

Andy


php::bar PHP Wiki   -   Listenarchive