【问题标题】:retrieve MergeField values from mail-merged Word Document programmatically以编程方式从邮件合并的 Word 文档中检索 MergeField 值
【发布时间】:2009-07-22 00:44:28
【问题描述】:

我有大量的 MSWord 文档(大约 40,000 个),它们是邮件合并的结果(相同的主文档,不同的数据源)。

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

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

我对任何方法都感兴趣,无论是使用 Word 本身、Office 自动化、十六进制转储二进制文件和 grepping 以获取某些魔法,还是任何可以做到这一点的现成工具(perl 脚本、.NET 应用程序等)之类的。

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

【问题讨论】:

    标签: search ms-word grep file-format mailmerge


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,这就是我对目前情况的评估。我正在考虑使用 wvWare 作为二进制处理器选项或 VBA 路由。我希望有人有 a) 对预先存在的工具/VBA 脚本的建议,或者 b) 一些关于在哪里查找二进制格式的文档。
    • @Stobor:哇,我觉得应该有一个“10 年后接受答案”的徽章 :-) 另外我想对这些 +10 分感兴趣 :-)
    • 嘿,是的,我正在查看我的个人资料页面,发现我有一个问题没有得到接受的答案,所以我决定清理它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 2018-04-14
    相关资源
    最近更新 更多