2016-04-27 69 views
0

我有一個Word文檔,其中包含一些指向Excel文件中單元格的鏈接。在Word中,我可以得到一個上下文菜單,這會導致一個包含文檔所有鏈接的窗口。在那裏,我可以看到並操縱鏈接的屬性。使用OpenXML SDK處理Word文檔中鏈接的狀態

除其他之外,還有「Updatemethod for selected link」部分(詞彙可能不同,我翻譯自德文版本),我有兩個帶有「自動」/「手動」的收音機框。和一個複選框「鎖定」。

我想修改(特別是鎖定的複選框)這些屬性與OpenXML,但我沒有找到的地方,在這個信息存儲在模型的位置。我打印了OuterXML的一個鏈接,鎖定已選中,鏈接未鎖定,但沒有在參數字段中找到任何區別(\ a \ f 5 \ h * MERGEFORMAT - 對於這兩個!)

任何人都知道,我如何使用OpenXML SDK修改此內容?

由於提前,
弗蘭克

+1

這將有助於獲得更多信息,情況並非100%清楚...... 1)Word的版本? 2)完整的現場代碼,不只是最後的開關; 3)您參照的窗口(對話框)的屏幕截圖(即使是德語)。 –

回答

1

Word有不同的方式來表示對鏈接的格式部分取決於(例如你是否粘貼鏈接到對象或純文本)中的Office Open XML的LINK。

例如,如果您將鏈接粘貼到「Microsoft Excel工作表對象」,儘管Word在文檔中顯示LINK字段,但XML實際上並不使用簡單或更復雜的字段編碼來記錄字段代碼碼。它實際上編碼,其記錄了關於「形狀」的信息<w:object>元素的對象,在<o:OLEObject>

在這種情況下,<v:shapetype>的形狀類型,形狀本身<v:shape>,以及有關的OLE鏈接,自動鏈接更新使用

<o:OLEObject UpdateMode='Always'>用於自動鏈接

<o:OLEObject UpdateMode='OnCall'>用於手動鏈接被記錄。

無論鏈路鎖定被記錄在

<o:OLEObject><o:LockedField></o:LockedField<o:OLEObject> 

(或者作爲 「假」 或 「」 AFAICS)。

Word在重新顯示文檔時從w:object信息重建LINK字段代碼。

但是,如果將鏈接粘貼爲文本,XML Word記錄將包含複雜的字段代碼構造,從<w:fldChar w:fldCharType='begin' />元素開始。

在這種情況下,事實上,該鏈接被鎖定是由「1" 的值指示在W:fldLock屬性,並且可能不存在該屬性的,如果它沒有被鎖定例如

<w:fldChar w:fldCharType='begin' w:fldLock='1' />

在任何一種情況下,自動鏈接通過域代碼中的一個開關指示(在第一個示例中重新構建)。如果沒有\開關,則它不是自動鏈接。

這可能不包括所有可能的情況,但應該給你一些關於在XML中查找的線索。

+0

很酷,就是這樣!非常感謝(特別是詳細的解釋!):) – Aaginor

相關問題