[英]Automatically update formula field after generating Open XML Word document
我有一個使用OpenXML SDK生成Word文檔的庫,該庫的一個功能是生成最后一行包含公式的表(例如SUM(ABOVE)
)。
Word具有內置的這些功能,但在生成文檔時,我必須假設Word未安裝在計算機上。
問題是,如果我只是生成表格和公式字段,它將不會在打開文檔時自動更新,用戶必須打開文檔並手動選擇“更新字段”才能計算函數。
有沒有辦法在代碼中執行此操作(無需手動計算功能)?
不,這是設計的。 有關詳細信息,請參閱打開,重新打印或打印文檔時更新的字段 。
對於任何手動輸入也是如此(例如,如果您在A1中有10個,在A2中有10個,在A3中插入=SUM(ABOVE)
,則您有20個。但是如果您將A1更改為15,則A3將不會自動更新除非並且直到你手動這樣做)。
解決此問題的唯一方法是創建一個加載項(VSTO,VBA等)以在客戶端計算機上接收Document_Open
事件並運行一些代碼來更新所有字段或在打開文檔的服務器上創建Interop應用程序,呈現它帶有一些代碼,然后在進一步發送之前將其保存回來。
你看過這個, UpdateFieldsOnOpen
類。 ( https://msdn.microsoft.com/en-us/library/cc861799 )它應該在第一次使用可以更新它的應用程序(例如Word)打開文檔時強制更新所有字段。
我想每個將其Dirty
標志設置為true的字段都會得到更新,但不要引用我的內容;)
您可以設置值UpdateFieldsOnOpen
,打開文檔Word時會詢問您要刷新的內容。 有關更多詳細信息,請參閱此文章: http : //www.samuraiprogrammer.com/blog/2010/08/09/OpenXMLHowToRefreshAFieldWhenTheDocumentIsOpened.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.