使用 OpenXML SDK 操作 Word 文档中的链接状态

Manipulate status of links in Word document with OpenXML SDK

我有一个 Word 文档,其中包含一些 link 到 Excel 文件中的单元格。在 Word 中,我可以获得一个上下文菜单,该菜单会导致 window 以及文档的所有 link。在那里,我可以查看和操作 links.

的属性

除此之外,还有 "Updatemethod for chosen link" 部分(字词可能不同,我是从德语版翻译过来的),我有两个带 "automatic" / "manual" 的单选框。还有一个复选框 "locked".

我想用 OpenXML 修改(尤其是锁定的复选框)这些属性,但我没有找到在模型中存储此信息的位置。我为 link 和锁定未选中的 link 打印了 OuterXML,但在参数字段中没有发现任何差异(\a \f 5 \h * MERGEFORMAT - 两者! )

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

提前致谢,
弗兰克

Word 在 Office Open XML 中有不同的表示 LINK 的方式,部分取决于 link 的格式(例如,您是否将 Link 粘贴到对象或纯文本)。

例如,如果将link粘贴到"Microsoft Excel Worksheet Object",虽然Word在文档中显示了LINK字段,但XML实际上并没有记录字段代码使用简单或更复杂的字段代码编码。它实际上将对象编码在 <w:object> 元素中,该元素记录有关 "shape" 的信息,形状类型在 <v:shapetype> 中,形状本身在 <v:shape> 中,以及有关 OLE 的信息link 在 <o:OLEObject>

在那种情况下,使用

记录自动link更新

<o:OLEObject UpdateMode='Always'> 自动 links

<o:OLEObject UpdateMode='OnCall'> 手动 links.

是否锁定link记录在

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

(作为 "false" 或“” AFAICS)。

Word 在显示文档时根据 w:object 信息重建 LINK 域代码。

但是,如果将 link 粘贴为文本,XML Word 记录将包含一个复杂的字段代码结构,从 <w:fldChar w:fldCharType='begin' /> 元素开始。

在这种情况下,link 被锁定的事实由 w:fldLock 属性中的值“1”表示,如果未锁定,则可能不存在该属性. 例如

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

在任何一种情况下,自动 link 由字段代码中存在的 \a 开关指示(在第一个示例的情况下重建)。如果没有 \a 开关,则不是自动 link.

这可能无法涵盖所有​​可能的情况,但应该可以为您提供一些关于在 XML 中查找的线索。