2016-04-27 121 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

相关问题