我有一个Word文档,其中包含一些指向Excel文件中单元格的链接。在Word中,我可以获得一个上下文菜单,该菜单指向包含文档所有链接的窗口。在那里,我可以看到和操纵链接的属性。
除此之外,还有选择链接的部分"更新方法" (单词可能有所不同,我将其翻译成德语版本),我有两个带有"自动" /"手册"。一个复选框"已锁定"。
我想用OpenXML修改(尤其是锁定复选框)这些属性,但我没有找到该位置,模型中存储此信息的位置。我打印了OuterXML以获取已锁定已检查的链接以及未锁定已锁定的链接,但未在参数字段中找到任何差异(\ a \ f 5 \ h * MERGEFORMAT - 两者都有!)
任何人都知道,我如何使用OpenXML SDK修改它?
提前致谢,
弗兰克
答案 0 :(得分:1)
Word有不同的方式来表示Office Open XML中的LINK,部分取决于链接的格式(例如,您是粘贴链接到对象还是纯文本)。
例如,如果将链接粘贴到“Microsoft Excel工作表对象”,虽然Word在文档中显示LINK字段,但XML实际上并不使用简单或更复杂的字段代码编码来记录字段代码。它实际上对<w:object>
元素中的对象进行编码,该元素记录有关“形状”的信息,形状类型为<v:shapetype>
,形状本身位于<v:shape>
,有关OLE链接的信息<o:OLEObject>
在这种情况下,使用
记录自动链接更新 <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' />
元素开始。
在这种情况下,链接被锁定的事实在w:fldLock属性中由值“1”表示,如果未锁定,则可能缺少该属性。例如
<w:fldChar w:fldCharType='begin' w:fldLock='1' />
在任何一种情况下,自动链接由字段代码中存在的\ a开关指示(在第一个例子的情况下重建)。如果没有\ a开关,则它不是自动链接。
这可能无法涵盖所有可能的情况,但应该为您提供有关在XML中查找位置的一些线索。