2009-07-22 132 views
1

我有大量MSWord文档(大约40,000),它们是mailmerges(相同主文档,不同数据源)的结果。以编程方式从邮件合并Word文档检索MergeField值

其中一个合并字段是文本字段,可以有文本“是”或“否”。

是否有一种简单的方法可以列出哪些文档将合并字段设置为值“是”? (我期待大约10,000个“是”的文档。)

我会对任何方法感兴趣,无论是使用Word本身,Office自动化,hexdumping二进制文件和grep对于某些魔法,或任何现成的工具(Perl脚本,.NET应用程序等),可以做这种事情。

这些文件位于可从Linux和Windows盒子访问的网络共享中(如果需要,我可能会盗用一段时间的Mac),所以我并不担心工具在哪个平台上运行。

回答

1

如果他们是Word 2007文档,它会容易得多,因为文件格式是XML。 (即使在Word 2003中,您也可以将其保存为XML文档,但这不是默认设置)。但是,我认为这些是使用默认(二进制)文件格式的标准Word 2003文档。

我相信有些工具可以直接处理二进制文件格式,并且可以将文档转换为可以处理的文本文件 - 假设您可以搜索出现在字段,例如“你是认真的吗:”。

但是,最简单/最简单的方法(就执行时间而言最慢)将是编写一个VBA程序来打开每个文档,搜索该字段并提取结果。这将是非常简单的VBA,你可以在Word中完成它(这意味着代码可以使用Word的现有运行实例)。我会说你可以在几个小时内完成并运行 - 然后你可以把它的脚抬高几个小时,而它的工作:-)

+0

是的,这是我的评估情况在时刻。我正在考虑使用wvWare作为二进制处理器选项或VBA路由。我希望有人可以a)对现有工具/ VBA脚本的建议,或者b)关于二进制格式的外观的一些文档。 – Stobor 2009-07-23 00:38:19

相关问题