2017-07-27 105 views
1

我想更新Microsoft Word文檔的所有字段。目前我使用的方法Microsoft.Office.Interop.Word.Document.Fields.Update(),但它不更新字段。但是,如果我通過選擇全部文檔內容並按窗口鍵f9來更新字段來手動執行相同的操作,那麼Microsoft Word文檔的字段會正確更新。如何更新Word文檔中的所有字段?

所以有人建議我有沒有其他的方式來更新word文檔的字段?

+0

什麼是您收到的錯誤消息或異常?更新您的問題更多信息與代碼你已經嘗試過。 –

+0

我沒有收到任何錯誤或異常。我必須更新Word文檔字段,然後纔開始在我的應用程序中使用它以獲得正確的結果。由於字段沒有正確更新,我得到錯誤的結果。但是當我手動更新文檔中的字段時,我得到了正確的結果。這是我在我的應用程序中使用的代碼片段。 wordDoc.Fields.Update(); wordDoc.UndoClear(); wordDoc是Microsoft word互操作對象。 –

+0

所以錯誤可能不是來自com方法。它將來自你的代碼,你操縱Word文檔中的數據。 –

回答

1

要更新的內容/數字表的具體情況:

// 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(); 
} 

我希望這涵蓋了你需要更新的字段,或者給你足夠的信息來推斷你的領域。

+0

文檔字段不會更新這些條件。但我觀察到的一件事是,如果我使用下面的代碼片段更新字段後保存文檔,那麼我能夠看到預期的結果。 _wordDoc.Fields.Update(); _wordDoc.UndoClear(); _wordDoc.Save();但我不想保存文檔,因爲文檔的保存可能會影響文檔的原始內容。 –

相關問題