首页 > 解决方案 > 如何在 C# 中使用 OpenXML 更新所有字段(交叉引用)?

问题描述

在 Word 中有一个选项“更新字段”。我想加载一个 Word 模板并用一些数据填充 FormFields。还有一些字段是对其他字段的引用。

使用 Interop,我可以简单地编写“UpdateAllFields”,但 OpenXML 中的等价物是什么?

谢谢 :)

标签: c#ms-wordopenxmlopenxml-sdk

解决方案


您想使用Open XML SDK来更新字段,对吗?这是一些示例代码:

using (WordprocessingDocument document = WordprocessingDocument.Open(path, true))
{
  DocumentSettingsPart settingsPart = document.MainDocumentPart.GetPartsOfType<DocumentSettingsPart>().First();
  // Create object to update fields on open
  UpdateFieldsOnOpen updateFields = new UpdateFieldsOnOpen();
  updateFields.Val = new DocumentFormat.OpenXml.OnOffValue(true);
  // Insert object into settings part.
  settingsPart.Settings.PrependChild<UpdateFieldsOnOpen>(updateFields);
  settingsPart.Settings.Save();
}

欲了解更多信息,请参阅以下链接:

OpenXML:打开文档时如何刷新字段


推荐阅读