Tabellen in Word-Dokument schreiben

Für Fragen von Einsteigern und Programmieranfängern...

Tabellen in Word-Dokument schreiben

Beitragvon Nicole_DTB » 16. Mär 2017, 16:01 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 ?
Nicole_DTB
 
Beiträge: 5
Registriert: 16. Mär 2017, 13:21

Beitragvon Mathias » 16. Mär 2017, 17:26 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.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3056
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Nicole_DTB » 16. Mär 2017, 17:34 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;
Nicole_DTB
 
Beiträge: 5
Registriert: 16. Mär 2017, 13:21

Beitragvon wp_xyz » 16. Mär 2017, 17:52 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.
wp_xyz
 
Beiträge: 2187
Registriert: 8. Apr 2011, 08:01

Beitragvon Nicole_DTB » 16. Mär 2017, 18:17 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.
Nicole_DTB
 
Beiträge: 5
Registriert: 16. Mär 2017, 13:21

Beitragvon wp_xyz » 16. Mär 2017, 18:27 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.
wp_xyz
 
Beiträge: 2187
Registriert: 8. Apr 2011, 08:01

Beitragvon Nicole_DTB » 16. Mär 2017, 18:47 Re: Tabellen in Word-Dokument schreiben

Habe beide Vorschläge ausprobiert (Zeilenumbruch und unterschiedliche Namen).
Das Problem bleibt unverändert bestehen.
Nicole_DTB
 
Beiträge: 5
Registriert: 16. Mär 2017, 13:21

Beitragvon wp_xyz » 17. Mär 2017, 00:08 Re: Tabellen in Word-Dokument schreiben

Zur Formatierungsfrage hilft vielleicht das: https://msdn.microsoft.com/en-us/librar ... =office.11).aspx
wp_xyz
 
Beiträge: 2187
Registriert: 8. Apr 2011, 08:01

Beitragvon Nicole_DTB » 17. Mär 2017, 11:48 Re: Tabellen in Word-Dokument schreiben

Habe das Problem gelöst :D :D

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 :oops:
Nicole_DTB
 
Beiträge: 5
Registriert: 16. Mär 2017, 13:21

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 1 Gast

porpoises-institution
accuracy-worried