【发布时间】:2010-10-21 23:05:39
【问题描述】:
我正在以编程方式生成 Office Open XML 文档(Word 2007 格式),并希望在我生成的文档首次在 Word 中打开时更新所有字段。
当我前段时间对此进行研究时,唯一的方法是在文档打开时运行 VB 脚本。但是 VB Script 默认不运行,为了让这个工作用户必须授权脚本,这比要求用户执行“全选,F9”更复杂,所以这违背了目的。
有什么建议吗?
亚历克斯
【问题讨论】:
我正在以编程方式生成 Office Open XML 文档(Word 2007 格式),并希望在我生成的文档首次在 Word 中打开时更新所有字段。
当我前段时间对此进行研究时,唯一的方法是在文档打开时运行 VB 脚本。但是 VB Script 默认不运行,为了让这个工作用户必须授权脚本,这比要求用户执行“全选,F9”更复杂,所以这违背了目的。
有什么建议吗?
亚历克斯
【问题讨论】:
有一种方法可以在没有 VB 脚本的情况下做到这一点。
您可以将字段设置为脏,打开文档时它会更新。
<w:fldSimple w:instr="TOC" w:dirty="true" />
如果您有很多字段,您可以更新文档中的设置,以便在打开文档时更新所有字段
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:updateFields w:val="true" />
</w:settings>
但是,这两者都有一个缺点,即在打开文档时会出现一个确认对话框,上面写着“此文档包含可能引用其他文件的字段。您要更新此文档中的字段吗?”
【讨论】:
您的研究已经显示了正确的结果。使用 VBA 或任何其他形式的 Word 自动化是唯一的方法。 Word 和 OpenXML 都可以选择在打开时自动更新字段。
【讨论】: