1

差し込み印刷の結果である MSWord ドキュメント (約 40,000) の大規模なコレクションがあります (メイン ドキュメントは同じですが、データ ソースは異なります)。

マージ フィールドの 1 つは、「はい」または「いいえ」というテキストを含むテキスト フィールドです。

どのドキュメントの差し込みフィールドが値「はい」に設定されているかを簡単にリストする方法はありますか? (約10,000件の「はい」の文書を見込んでいます。)

Word 自体、Office オートメーション、バイナリ ファイルの 16 進ダンプと特定の魔法の grep の使用、またはこの種のことを実行できる既製のツール (perl スクリプト、.NET アプリなど) を使用するかどうかに関係なく、あらゆるアプローチに興味があります。 .

ファイルは、Linux と Windows の両方のボックスからアクセスできるネットワーク共有上にあるため (必要に応じて、しばらくの間 Mac を盗むこともできます)、ツールがどのプラットフォームで実行されるかについてはあまり心配していません...

4

1 に答える 1

1

Word 2007 ドキュメントの場合は、ファイル形式が XML であるため、はるかに簡単です。(デフォルトではありませんが、Word 2003 でも XML ドキュメントとして保存できます)。ただし、これらは既定の (バイナリ) ファイル形式を使用する標準の Word 2003 ドキュメントであると想定しています。

バイナリ ファイル形式を直接処理できるツールがあり、ドキュメントをテキスト ファイルに変換して処理できるツールがあると思います。おそらく、フィールドの直前に表示されるテキストを検索できます。たとえば、"真剣ですか:"。

ただし、最も簡単で簡単な方法 (実行時間の点では最も遅い) は、VBA プログラムを記述して各ドキュメントを開き、フィールドを検索して結果を抽出することです。これは非常に単純な VBA であり、Word 自体で行うことができます (つまり、コードは Word の既存の実行中のインスタンスを使用できます)。数時間でそれを起動して実行できると思います-それから、それが機能している間、さらに数時間足を伸ばすことができます:-)

于 2009-07-22T12:47:42.520 に答える