Hi,
Ich muss (möglichst in Python) Word-Dokumente auf bestimmte Sachen überprüfen.
Zb. gibt's Tabellen in Tabellen, werden bestimmte Format-vorlagen verwendet, usw...
Nun habe ich mir mal win32com angesehen, komm da aber nur soweit das ich den Text des Dokuments anzeigen kann, sonst jedoch nix.
Hat jemand eine Idee wie ich das am besten löse?
Gibt's eigentlich irgendwo ne vernünftige Doku zu win32com? Es heist man kann die VBA Doku verwenden, aber das scheint irgendwie nicht zu zutreffen.
Danke im Vorraus !
Worddokumente analysieren
-
problembär
Eine wirklich gute Doku zu win32com hab' ich noch nicht gefunden. Wahrscheinlich, weil es ein Interface zu ganz verschiedenen Windows-Programmen ist. Zu Word hatte wohl noch niemand Lust, das im einzelnen zu beschreiben. Der Grund könnte sein, daß das in der VBA-Hilfe von Word ganz gut beschrieben ist. Guck' auch mal auf der Word-CD, manchmal wird die VBA-Hilfe nicht standardmäßig mitinstalliert.patmaster hat geschrieben:werden bestimmte Format-vorlagen verwendet
Einstieg dürfte auch der Makro-Recorder sein. Damit aufzeichnen, was man ungefähr machen will, dann das Makro angucken und die Hilfe nach den Objekten usw. abfragen.
Ich benutze das PythonWin-IDE, das bei Objekten praktischerweise immer gleich die Methoden mit anzeigt, sobald man einen Punkt dahinter setzt.
Im Ergebnis sollte dieses Skript alle Formatvorlagen im Dokument ausgeben:
Code: Alles auswählen
#!/usr/bin/env python
# coding: cp1252
import win32com.client
word = win32com.client.Dispatch('Word.Application')
word.Visible = 1
word.WindowState = 1
document = word.Documents.Add("C:\\somedocument.doc")
selection = word.Selection
a = document.Styles
builtinstyles = {}
selfdefined = {}
for i in a:
n = i.NameLocal
if i.BuiltIn == True:
builtinstyles[n] = None
else:
selfdefined[n] = None
print "Eingebaute Formatvorlagen:"
for i in builtinstyles:
print i
print
print "Benutzerdefinierte Formatvorlagen:"
for i in selfdefined:
print iDanke für deine Antwort. Hab ganz vergessen, noch mal rein zuschauen ob jemand schlauer ist also ichproblembär hat geschrieben:Eine wirklich gute Doku zu win32com hab' ich noch nicht gefunden. Wahrscheinlich, weil es ein Interface zu ganz verschiedenen Windows-Programmen ist. Zu Word hatte wohl noch niemand Lust, das im einzelnen zu beschreiben. Der Grund könnte sein, daß das in der VBA-Hilfe von Word ganz gut beschrieben ist. Guck' auch mal auf der Word-CD, manchmal wird die VBA-Hilfe nicht standardmäßig mitinstalliert.patmaster hat geschrieben:werden bestimmte Format-vorlagen verwendet
Einstieg dürfte auch der Makro-Recorder sein. Damit aufzeichnen, was man ungefähr machen will, dann das Makro angucken und die Hilfe nach den Objekten usw. abfragen.
Ich benutze das PythonWin-IDE, das bei Objekten praktischerweise immer gleich die Methoden mit anzeigt, sobald man einen Punkt dahinter setzt.
Im Ergebnis sollte dieses Skript alle Formatvorlagen im Dokument ausgeben:Word 97, Python 2.4. Wenn's bei neueren Word-Versionen auch klappt, spricht das für eine gute Abwärtskompatibilität der Microsoft-Produkte. Ich bin zwar mit vielem nicht einverstanden, was sie machen, aber in dem Punkt sind sie meistens recht gut. Muß man ihnen lassen.Code: Alles auswählen
#!/usr/bin/env python # coding: cp1252 import win32com.client word = win32com.client.Dispatch('Word.Application') word.Visible = 1 word.WindowState = 1 document = word.Documents.Add("C:\\somedocument.doc") selection = word.Selection a = document.Styles builtinstyles = {} selfdefined = {} for i in a: n = i.NameLocal if i.BuiltIn == True: builtinstyles[n] = None else: selfdefined[n] = None print "Eingebaute Formatvorlagen:" for i in builtinstyles: print i print print "Benutzerdefinierte Formatvorlagen:" for i in selfdefined: print i
Mittlerweile hatte ich folgenden Code erarbeitet der mit alignment und Formatvorlagen ausgibt:
Code: Alles auswählen
for par in doc.Paragraphs:
print par.Alignment
print par.Format.Style
PythonWin-IDE werd ich mal versuchen...danke für den Tipp!
