我正在以编程方式生成 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 都可以选择在打开时自动更新字段。