Excel über COM ansteuern
Chris
- php
0 Axel Richter0 Chris
hallo,
ich will via COM auf excel zugreifen und verschiedene "Cell" eigenschaften ändern.
wenn ich den border versuche zu ändern kommt es aber ständig zu fehlern.
diese variante klappt
$border = &$excel -> Workbooks[1] -> Worksheets["Test"] -> Range("B1");
$border -> activate;
$border -> Borders -> ColorIndex = 1;
$border -> Borders -> Weight = 3;
$border -> Borders -> LineStyle = 1;
wenn ich allerdings etwas detailiertere border erstellen will
$border2 = &$excel -> Workbooks[1] -> Worksheets["Test"] -> Range("B3");
$border2 = &$border2 -> Borders("xlEdgeBottom"); // zeile 71
bekomm ich bereits hier nen fehler und weiss nicht wie ich den syntax anpassen muss um ihn zu vermeiden bzw überhaupt zu erreicehn was ich will
fehler lautet
Warning: (null)(): Invoke() failed: Typkonflikt. Argument: 2 in D:\inetpub\htdocs\CVS\xlstest\test4.php on line 71
wäre toll, wenn mir jemand nen tip bzw gleich nen syntax bsp für das bordersetzten geben könnte.
thx, Chris
Hallo,
wenn ich allerdings etwas detailiertere border erstellen will
$border2 = &$excel -> Workbooks[1] -> Worksheets["Test"] -> Range("B3");
$border2 = &$border2 -> Borders("xlEdgeBottom"); // zeile 71
^Das ist kein String, sondern eine Konstante, welche im Excel-Umfeld definiert ist. Sie hat dort den Integer-Wert 9.
fehler lautet
Warning: (null)(): Invoke() failed: Typkonflikt. Argument: 2 in D:\inetpub\htdocs\CVS\xlstest\test4.php on line 71
Klar. Du übergibtst als 2. Argument einen String. Erwartet wird eine Ganzzahl.
Lösung:
Definiere die Konstanten im PHP-Umfeld oder arbeite mit den Zahlenwerten direkt.
Du bekommst die Werte durch Ausgaben im VBA in Excel
Sub test()
Range("B1").Borders(xlEdgeBottom).LineStyle = xlDashDot
MsgBox (xlEdgeBottom)
MsgBox (xlDashDot)
Range("B2").Borders(9).LineStyle = 4
End Sub
viele Grüße
Axel
tausend dank für deine hilfe, hat mir sehr geholfen!
danke und gruss Chris