Tabellen in Word-Dokument schreiben
-
- Beiträge: 5
- Registriert: Do 16. Mär 2017, 13:21
Tabellen in Word-Dokument schreiben
Bin Lazarus-Anfänger und versuche mehrere Tabellen in ein Word-Dokument zu schreiben.
Das gelingt mir auch mit einer Tabelle
varTabelle := varDokument.Tables.Add(WordApp.Selection.Range, 7, 2);
varTabelle.Cell(1, 1).Range.Text := widestring(UTF8Decode('X'));
varTabelle.Cell(1, 2).Range.Text := widestring(UTF8Decode('Y'));
usw.
Wenn ich auf diese Weise versuche eine 2. Tabelle anzulegen, dann werden die neuen Zellen aber immer als neue Spalte an die 1. Tabelle angefügt.
Habe leider keine (für Anfänger wie mich) geeignete Anleitung gefunden, wie man Tabellen in einem Worddokumet formatiert (z.B. auch Rahmen um Zellen).
Hat jemand einen Tipp für mich, wo ich mich da schlau machen kann ?
Das gelingt mir auch mit einer Tabelle
varTabelle := varDokument.Tables.Add(WordApp.Selection.Range, 7, 2);
varTabelle.Cell(1, 1).Range.Text := widestring(UTF8Decode('X'));
varTabelle.Cell(1, 2).Range.Text := widestring(UTF8Decode('Y'));
usw.
Wenn ich auf diese Weise versuche eine 2. Tabelle anzulegen, dann werden die neuen Zellen aber immer als neue Spalte an die 1. Tabelle angefügt.
Habe leider keine (für Anfänger wie mich) geeignete Anleitung gefunden, wie man Tabellen in einem Worddokumet formatiert (z.B. auch Rahmen um Zellen).
Hat jemand einen Tipp für mich, wo ich mich da schlau machen kann ?
-
- Beiträge: 6917
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Tabellen in Word-Dokument schreiben
Es wäre noch interessant zu wissen was VarTabelle und varDokument ist, ist dies ein StringGrid ?
Ohne dies kann dir sicher niemand helfen.
Ohne dies kann dir sicher niemand helfen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 5
- Registriert: Do 16. Mär 2017, 13:21
Re: Tabellen in Word-Dokument schreiben
Entschuldigung !
Ich bin so "frisch" in Lazarus, dass ich noch nicht mal die Fragen ordentlich stellen kann.
varDokument:oleVariant;
varTabelle:oleVariant;
Ich bin so "frisch" in Lazarus, dass ich noch nicht mal die Fragen ordentlich stellen kann.
varDokument:oleVariant;
varTabelle:oleVariant;
Re: Tabellen in Word-Dokument schreiben
Es gibt einige recht gute wiki-Seiten dazu: http://wiki.lazarus.freepascal.org/WordAutomation/de und evtl. auch http://wiki.lazarus.freepascal.org/Exce ... 007plus/de. Allerdings ändert Microsoft gelegentlich die Aufrufkonventionen für die einzelnen Prozeduren, so dass das ganze zienlich viel Raterei wird. Du solltest daher auch versuchen im Internet die Dokumentation zu finden, z.B. https://msdn.microsoft.com/de-de/library/ff837519.aspx für Word2013+.
Um eine zweite Tabelle zu erzeugen musst du m.E. "varTable := varDocument.Tables.Add(....)" erneut aufrufen.
Das alles ohne Garantie, denn ich habe OLEAutomation immer gehasst.
Um eine zweite Tabelle zu erzeugen musst du m.E. "varTable := varDocument.Tables.Add(....)" erneut aufrufen.
Das alles ohne Garantie, denn ich habe OLEAutomation immer gehasst.
-
- Beiträge: 5
- Registriert: Do 16. Mär 2017, 13:21
Re: Tabellen in Word-Dokument schreiben
Meine rudimentären Kenntnisse habe ich von der Wiki-Seite (Wordautomation), die du da erwähnst..
Aber weitere Infos zu meinem Problem finde ich dort eben nicht.
Der erneute Aufruf für die 2. Tabelle führt dazu, dass im Worddokument die 2 Tabelle an die erste "geklatscht" wird, was ich natürlich nicht will. Ich habe irgendwie das Gefühl, dass es einen Befehl (sinngemäß) "Close Tabelle 1" geben müsste, damit man die 2 Tabelle schreiben kann.
Aber weitere Infos zu meinem Problem finde ich dort eben nicht.
Der erneute Aufruf für die 2. Tabelle führt dazu, dass im Worddokument die 2 Tabelle an die erste "geklatscht" wird, was ich natürlich nicht will. Ich habe irgendwie das Gefühl, dass es einen Befehl (sinngemäß) "Close Tabelle 1" geben müsste, damit man die 2 Tabelle schreiben kann.
Re: Tabellen in Word-Dokument schreiben
Du könntest zur Sicherheit für beide Tabellen verschiedene Variablennamen verwenden. Außerdem könntest zu nach der 1. Tabelle z.B. einen Zeilenumbruch ins Word-Dokument schreiben - ich denke, dass Word zwei direkt aufeinander folgende Tabellen auch ohne Abstand hintereinander layoutet.
-
- Beiträge: 5
- Registriert: Do 16. Mär 2017, 13:21
Re: Tabellen in Word-Dokument schreiben
Habe beide Vorschläge ausprobiert (Zeilenumbruch und unterschiedliche Namen).
Das Problem bleibt unverändert bestehen.
Das Problem bleibt unverändert bestehen.
Re: Tabellen in Word-Dokument schreiben
Zur Formatierungsfrage hilft vielleicht das: https://msdn.microsoft.com/en-us/librar ... e.11).aspx
-
- Beiträge: 5
- Registriert: Do 16. Mär 2017, 13:21
Re: Tabellen in Word-Dokument schreiben
Habe das Problem gelöst
Es fehlte der Befehl
WordApp.Selection.EndKey(6);
der dafür sorgt, dass die Cursorposition nicht mehr irgendwo in der Tabelle ist, sondern am Ende des Dokumentes.
Dadurch kann jetzt auch die zweite Tabelle korrekt positioniert werden.
Eigentlich ganz einfach


Es fehlte der Befehl
WordApp.Selection.EndKey(6);
der dafür sorgt, dass die Cursorposition nicht mehr irgendwo in der Tabelle ist, sondern am Ende des Dokumentes.
Dadurch kann jetzt auch die zweite Tabelle korrekt positioniert werden.
Eigentlich ganz einfach
