2009-07-22 12 views
1

Ich habe eine große Sammlung von MSWord-Dokumenten (ca. 40.000), die die Ergebnisse von Mailmerges (dasselbe Hauptdokument, andere Datenquellen) sind.MergeField-Werte aus Mail-fusion Word-Dokument programmgesteuert abrufen

Eines der Serienfelder ist ein Textfeld, das den Text "Ja" oder "Nein" haben könnte.

Gibt es einen einfachen Weg, um aufzulisten, welches der Dokumente, die das Zusammenführungsfeld haben, auf den Wert "Ja" gesetzt wurde? (Ich erwarte etwa 10.000 "Ja" Dokumente.)

Ich würde in jedem Ansatz interessiert sein, ob mit Word selbst, Office-Automatisierung, Hexdumping der Binärdateien und grepping für bestimmte Magie, oder irgendwelche vorgefertigten Tools (Perl-Skripte, .NET-Anwendungen, etc.), die solche Dinge tun können.

Die Dateien befinden sich auf einer Netzwerkfreigabe, die sowohl von Linux- als auch von Windows-Boxen zugänglich ist (und ich kann wahrscheinlich einen Mac für eine Weile stehlen), also mache ich mir keine Sorgen, auf welcher Plattform die Tools laufen.

Antwort

1

Wenn es sich um Word 2007-Dokumente handelte, wäre es viel einfacher, da das Dateiformat XML ist. (Auch mit Word 2003 können Sie als XML-Dokument speichern, obwohl dies nicht der Standard ist). Ich gehe jedoch davon aus, dass dies Standard-Word 2003-Dokumente sind, die das Standarddateiformat (binär) verwenden.

Ich glaube, dass es Werkzeuge gibt, die das binäre Dateiformat direkt verarbeiten können und die Dokumente in Textdateien konvertieren können, die Sie dann verarbeiten könnten - vermutlich könnten Sie nach etwas Text suchen, der kurz vor dem erscheint Feld, z "Sind Sie im Ernst:".

Der einfachste/einfachste Weg (aber am langsamsten in Bezug auf die Ausführungszeit) wäre, ein VBA-Programm zu schreiben, um jedes Dokument zu öffnen, nach dem Feld zu suchen und das Ergebnis zu extrahieren. Es wäre ziemlich einfach VBA, und Sie könnten es in Word selbst tun (was bedeuten würde, dass der Code die bestehende laufende Instanz von Word verwenden könnte). Ich würde sagen, du könntest das in ein paar Stunden in Gang bringen - dann könntest du noch ein paar Stunden die Füße hochlegen, während es seine Arbeit tat :-)

+0

Ja, das ist meine Einschätzung der Situation am Moment. Ich erwog, wvWare als Option für den binären Prozessor oder die VBA-Route zu verwenden. Ich hatte gehofft, jemand hätte entweder a) Vorschläge von bereits vorhandenen Tools/VBA-Skripten, oder b) einige Dokumente, wo man im Binärformat nachschauen kann. – Stobor

Verwandte Themen