【发布时间】:2015-11-06 17:55:13
【问题描述】:
我需要使用 Access 数据库表中的文本动态生成 Word 文档。这里需要注意的是,来自数据库的一些文本需要修改为 MergeFields。我目前正在使用 Interop.Word(VBA 宏)和 VB.NET 来生成文档。
到目前为止,我的步骤如下所示:
- 拉取标准 .docx 模板
- 使用表格中预定义的填充文本填充模板
- 通过将填充文本替换为实际的合并字段来添加合并字段
- 附加数据源并执行邮件合并
经过测试,我注意到我不能简单地将 MergeFields 作为字符串存储到 access 数据库中,它们不会馈送到实际文档中。然后我在想的是创建一个已知字符串的表,应该通过编码替换为 MergeFields。
例如:
第 2 步将插入“在@INACTIVE_DATE@ 之后,您的帐户将不再有效。”这将在数据库文本中。
第 3 步将使用 MergeField «INACTIVE_DATE» 查找/替换 @INACTIVE_DATE@。我正在使用 Word Interop 来执行此操作,因此理论上我可以循环浏览文档。
我无法从文本到 MergeField 执行“查找和替换”,那么我应该如何实现呢?
另外标记 VBA,因为我正在寻找“VBA”风格的答案(Word Interop)。
【问题讨论】:
标签: vb.net vba ms-word office-interop