In Word schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo!
ich habe folgende Frage: wie kann ich mit Python (mit pywin32/win32all) in ein laufendes Word (2003) in das aktuell geöffnete Dokument, beim Cursor irgendeinen Text reinschrieben?

grüße,
Leonidas
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Okay, ich weis es jetzt:

Code: Alles auswählen

import win32com.client
word = win32com.client.Dispatch('Word.Application')
sel = word.Selection
sel.TypeText('Text')
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

hi leonidas,

paste doch, oder schreib nochmal mit ein paar erklärungen zu den snippets.
ist dann für andere (neue?) leichter zu finden.

mfg Olf
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Okay, dann werde ich es jetzt mal erklären:
Ich wollte in das aktuelle Word Dokument an der Cursorposition mit Python reinschreiben. Nun, da Word ein COM Server ist brauche ich ein COM Client modul. Also wird pywin32/win32all nötig sein.

Code: Alles auswählen

import win32com.client
word = win32com.client.Dispatch('Word.Application')
sel = word.Selection
sel.TypeText('Text')
In der ersten Zeile wird die COM Client Library importiert.
Dann stelle ich eine Verbindung zu Word her.
Als nächstes erstelle ich die Variabel sel die eigentlich die Cursorposition in Word (global, also nicht in den einzelnen Dokumenten, sondern in dem aktuellen Dokument) darstellt. Zuletzt benutze ich die TypeText methode des COM Objects, das den Text schreibt.
Nützlich hat sich die MSDN erwiesen, dort ist es aber für VBS/VBA.

grüße,
Leonidas
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten