C# 如何更新Word文档中的所有字段?

C# 如何更新Word文档中的所有字段?,c#,C#,我想更新Microsoft Word文档的所有字段。目前我正在使用方法Microsoft.Office.Interop.Word.Document.Fields.Update(),但它不更新字段。但是,如果我通过选择“文档总内容”手动执行相同的操作,然后按窗口键f9更新字段,则Microsoft Word文档的字段将正确更新 有人能告诉我有没有其他方法来更新word文档的字段 对于更新目录/图表的具体情况: // Microsoft.Office.Interop.Word.Document do

我想更新Microsoft Word文档的所有字段。目前我正在使用方法Microsoft.Office.Interop.Word.Document.Fields.Update(),但它不更新字段。但是,如果我通过选择“文档总内容”手动执行相同的操作,然后按窗口键f9更新字段,则Microsoft Word文档的字段将正确更新


有人能告诉我有没有其他方法来更新word文档的字段

对于更新目录/图表的具体情况:

// Microsoft.Office.Interop.Word.Document document;

foreach (TableOfContents tableOfContents in document.TablesOfContents)
{
    tableOfContents.Update();
}
foreach (TableOfFigures tableOfFigures in document.TablesOfFigures)
{
    tableOfFigures.Update();
}
foreach (Range storyRange in document.StoryRanges)
{
    storyRange.Fields.Update();
}

我希望这涵盖了您需要更新的字段,或者为您提供了足够的信息来推断您的字段。

当您添加新段落时,请确保将其添加到上一段的末尾,然后您的字段将更新。不要在当前段落的开头添加新段落。见示例:

2.00段落结束(按此处的“回车”键可获得新段落2.01)
2.01(不要按此处的“回车键”)段落开头

您收到的错误消息或异常是什么?请用您尝试过的代码更新您的问题更多信息。我没有收到任何错误或异常。我必须先更新word文档字段,然后才能在应用程序中使用它,以获得正确的结果。由于字段没有正确更新,我得到了错误的结果。但当我手动更新文档中的字段时,我得到了正确的结果。下面是我在应用程序中使用的代码片段。wordDoc.Fields.Update();wordDoc.UndoClear();wordDoc是Microsoft word互操作对象。因此,该错误可能不是由com方法引起的。它将来自您在word文档中操作数据的代码。文档字段不会根据这些条件进行更新。但我观察到的一件事是,如果我在使用下面的代码片段更新字段后保存文档,那么我就能够看到预期的结果_wordDoc.Fields.Update()_wordDoc.UndoClear()_wordDoc.Save();但是我不想保存文档,因为保存文档可能会影响文档原始内容。
foreach(m_document.Fields.Cast()中的var字段){field.Update();}
缺失。