Axel Richter: Tabelle in Word erstellen

Beitrag lesen

Hallo,

ich möchte über die Schnittstelle COM ein Word Dokument öffnen und eine Tabelle erstellen lassen.
Hier mal mein Code:
<?php

$Field = $word->ActiveDocument->Fields(1);

^Das ist eine Collection (Auflistung) aller Felder im aktiven Word-Dokument, also solcher Objekte, die man mit dem Menübefehl "Einfügen-Feld" in ein Word-Dokument einfügen kann. Mit einer Tabelle hat das nichts zu tun.

Das Problem ist, es wird ein Dokument geöffnet aber leider keine Tabelle angelegt. was mache ich falsch??

Nun, zunächst mal hast Du ein leeres Dokument. Du musst also erst mal eine Tabelle einfügen.

[VBA]
Sub Tabelle_in_leeres_Dokument()
    Set mytable = ActiveDocument.Tables.Add(ActiveDocument.Range(), 2, 3)
    mytable.Cell(1, 1).Range.Text = "Name"
    mytable.Cell(1, 2).Range.Text = "Vorname"
    mytable.Cell(1, 3).Range.Text = "Anschrift"
    mytable.Cell(2, 1).Range.Text = "Richter"
    mytable.Cell(2, 2).Range.Text = "Axel"
    mytable.Cell(2, 3).Range.Text = "..."
End Sub
[/VBA]

In PHP wäre das wohl:

...
    $mytable = $word->ActiveDocument->Tables->Add(ActiveDocument->Range(), 2, 3)
    $mytable->Cell(1, 1)->Range->Text = "Name"
...

ohne Gewähr.

Tipp: Erstelle zunächst ein Makro mit Word, indem Du die Aktionen einfach aufzeichnen lässt. Analysiere dann den VBA-Quellcode und setze diesen dann in PHP-COM-Syntax um.

viele Grüße

Axel