使用DocumentFormat.OpenXml(C#)更新.docx文档中的TOC

时间:2011-12-19 11:38:55

标签: c# .net openxml tableofcontents

我使用DocumentFormat.OpenXml创建新的word文档。 我加载模板文档,其中找到了内容表和带有图片标识的表。我使用c#代码为此模板添加其他内容。 我将此文档发送给用户。

当用户获取此文档并将其打开时 - 目录不会更新。 我找到了解决这个问题的方法。我添加到我的代码

  •     mainPart.DocumentSettingsPart.Settings.Append(new UpdateFieldsOnOpen(){Val = true});

但是当用户收到文件并打开文件时,他会收到来自MS Word的消息“你想要更新字段吗?”。

有没有其他方法可以生成目录或更新目录而不向用户发送任何消息?

2 个答案:

答案 0 :(得分:0)

我的问题得到了回答: http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/7f53a939-f50e-423d-90fa-1f3c58945a6e

  

您所看到的原因是一种安全措施   几年前介绍过。可能,您可以通过抑制消息   使用以下知识库文章中描述的注册表项。您   然而,需要注意的是,这可能会降低系统安全性。

     

以下博客文章介绍了更新的“正确”方法   TOC:http://support.microsoft.com/kb/330079

     

除此之外,唯一可用的是嵌入的宏   文档或使用自动化强制字段的插件   更新。

答案 1 :(得分:0)

我们在similar thread中就OpneXML SDK 2.0的帮助生成了内容表(TOC)进行了长时间的讨论。并且有一个详细的解决方案,解释如何实现它。请查看此主题以获取详细信息:How to generate Table Of Contents using OpenXML SDK 2.0?