Search 以编程方式从邮件合并的Word文档检索合并字段值

Search 以编程方式从邮件合并的Word文档检索合并字段值,search,ms-word,grep,file-format,mailmerge,Search,Ms Word,Grep,File Format,Mailmerge,我收集了大量MSWord文档(大约40000个),它们是邮件合并的结果(相同的主文档,不同的数据源) 其中一个合并字段是一个文本字段,可以包含文本“是”或“否” 有没有一种简单的方法可以列出哪些文档的合并字段设置为“是”的值?(我预计大约有10000份“是”文档。) 我对任何方法都感兴趣,无论是使用Word本身、办公自动化、转储二进制文件和对某些魔法进行grepping,还是任何现成的工具(perl脚本、.NET应用程序等)都可以实现这类功能 这些文件位于网络共享上,可以从Linux和Windo

我收集了大量MSWord文档(大约40000个),它们是邮件合并的结果(相同的主文档,不同的数据源)

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

有没有一种简单的方法可以列出哪些文档的合并字段设置为“是”的值?(我预计大约有10000份“是”文档。)

我对任何方法都感兴趣,无论是使用Word本身、办公自动化、转储二进制文件和对某些魔法进行grepping,还是任何现成的工具(perl脚本、.NET应用程序等)都可以实现这类功能


这些文件位于网络共享上,可以从Linux和Windows设备访问(如果必要的话,我可能会偷一段时间的Mac电脑),因此我不太担心工具运行在哪个平台上…

如果它们是Word 2007文档,那会容易得多,因为文件格式是XML。(即使使用Word 2003,也可以另存为XML文档,尽管这不是默认值)。但是,我假设这些是使用默认(二进制)文件格式的标准Word 2003文档

我相信有一些工具可以直接处理二进制文件格式,并且可以将文档转换为文本文件,然后您可以处理这些文件-大概您可以搜索字段前面出现的一些文本,例如“您是认真的吗?”


但是,最简单/最简单的方法(但在执行时间方面最慢)是编写一个VBA程序来打开每个文档、搜索字段并提取结果。这将是非常简单的VBA,您可以在Word本身中完成(这意味着代码可以使用现有的Word运行实例)。我想说,您可以在几个小时内安装并运行它-然后您可以在它工作时多站立几个小时:-)

如果它们是Word 2007文档,那么会容易得多,因为文件格式是XML。(即使使用Word 2003,也可以另存为XML文档,尽管这不是默认值)。但是,我假设这些是使用默认(二进制)文件格式的标准Word 2003文档

我相信有一些工具可以直接处理二进制文件格式,并且可以将文档转换为文本文件,然后您可以处理这些文件-大概您可以搜索字段前面出现的一些文本,例如“您是认真的吗?”


但是,最简单/最简单的方法(但在执行时间方面最慢)是编写一个VBA程序来打开每个文档、搜索字段并提取结果。这将是非常简单的VBA,您可以在Word本身中完成(这意味着代码可以使用现有的Word运行实例)。我想说,你可以在几个小时内把它安装好并运行起来——然后你可以在它工作的时候多站几个小时:——)

是的,这是我目前对形势的评估。我正在考虑使用wvWare作为二进制处理器选项,或VBA路由。我希望有人能提出a)对现有工具/VBA脚本的建议,或b)一些关于二进制格式的文档。@Stobor:哇,我觉得应该有一个“10年后接受答案”的徽章:-)另外,我想对这些+10点感兴趣:-)嘿,是的,我在看我的个人资料页面,发现我有一个问题没有被接受的答案,所以我决定把它清理干净。是的,这是我目前对情况的评估。我正在考虑使用wvWare作为二进制处理器选项,或VBA路由。我希望有人能提出a)对现有工具/VBA脚本的建议,或b)一些关于二进制格式的文档。@Stobor:哇,我觉得应该有一个“10年后接受答案”的徽章:-)另外,我想对这些+10点感兴趣:-)嘿,是的,我在看我的个人资料页面,发现我有一个问题没有被接受的答案,所以我决定把它清理干净。