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

发布于 2024-12-22 09:54:42 字数 367 浏览 2 评论 0原文

我使用 DocumentFormat.OpenXml 创建新的 Word 文档。 我加载模板文档,其中包含目录和带有图片徽标的表格。我使用此模板的 C# 代码附加其他内容。 我将此文档发送给用户。

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

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

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

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

I create new word document using DocumentFormat.OpenXml.
I load template document in which located the table of content and the table with picture logo. I append other content using c# code for this template.
I send this document to user.

When user get this document and open it - the table of contents not update.
I found the resolve this problem. I add to my code

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

But when user will get the document and will open it he get the message from MS Word "You wanna update fields?".

Is there any other way to generate table of contents or update table of contents without any message to user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷路的信 2024-12-29 09:54:42

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

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

以下博客文章描述了更新
目录:http://support.microsoft.com/kb/330079

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

I got answer for my question:
http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/7f53a939-f50e-423d-90fa-1f3c58945a6e

The cause of what you're seeing is a security measure that was
introduced a few years ago. Possibly, you can suppress the message by
using the Registry entry described in the following KB article. You
need to be aware, however, that this could reduce system security.

The following blog article describes the "correct" way to update the
TOC: http://support.microsoft.com/kb/330079

Other than that, the only thing available would be a macro embedded in
the document or in an addin that uses automation to force the fields
to update.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文