Web 扩展

Web 扩展

本指南展示了如何使用 Aspose.Words FOSS for .NET 读取和修改嵌入在 .docx 文件中的 Office Add-in 任务窗格元数据。Aspose.Words FOSS for .NET 可以通过 Document.WebExtensionTaskPanes 和 TaskPane/WebExtension 对象模型,读取和修改嵌入在 .docx 文件中的 web extension(Office Add-in)任务窗格——即将文档与 Office Add-in 关联并绑定到文档数据的元数据。


任务窗格

Document.WebExtensionTaskPanes 返回一个 TaskPaneCollection 的 TaskPane 对象。每个 TaskPane 描述了插件窗格的停靠位置和方式:DockState(一个 TaskPaneDockState,属于 Right 或 Left),Row、Width、IsLocked、IsVisible,以及一个指向插件本身的 WebExtension 属性。


Web Extension 身份和引用

WebExtension 通过 Id 和 IsFrozen 标识该插件,其 Reference 属性(一个 WebExtensionReference)公开了 Id、Version、Store 和 StoreType(一个 WebExtensionStoreType,例如 SPCatalog、Exchange 或 FileSystem),描述插件的分发来源。AlternateReferences 包含一个 WebExtensionReferenceCollection 的回退引用。


绑定和自定义属性

WebExtension.Bindings 是一个由 WebExtensionBinding 对象组成的 WebExtensionBindingCollection,每个对象都构建为 new WebExtensionBinding(id, bindingType, appRef),并通过 WebExtensionBindingType(Matrix、Table 或 Text)将文档数据的部分链接到加载项。WebExtension.Properties 是一个由简单的 WebExtensionProperty 名/值对组成的 WebExtensionPropertyCollection,构建为 new WebExtensionProperty(name, value),用于加载项特定的自定义设置,这些设置不需要完整的绑定。


集合成员

TaskPaneCollection、WebExtensionBindingCollection、WebExtensionPropertyCollection 和 WebExtensionReferenceCollection 都共享相同的基础集合行为:Add(item)、Clear()、Remove(index)、GetEnumerator() 和 Count。


提示和最佳实践

  • 在假设加载项的窗格当前已向用户显示之前,请检查 TaskPane.IsVisible——任务窗格可能已注册但被隐藏。
  • WebExtensionReference.StoreType 告诉您加载项的来源(目录、Exchange、文件系统、注册表);使用它来区分第一方加载项和侧载加载项。
  • 绑定将特定的 WebExtensionBindingType(矩阵、表格或纯文本)链接到文档数据——在假设加载项期望的数据形态之前,请检查绑定类型。
  • 使用 WebExtension.Properties 来存放简单的名/值加载项配置,而不是尝试将它们存放在文档的其他位置。

常见问题

问题原因修复
Document.WebExtensionTaskPanes 为空文档未注册任何 Office 加载项在假设 API 已损坏之前,请确认源 .docx 实际嵌入了任务窗格
无法判断加载项来自哪个商店StoreType 未检查阅读 WebExtensionReference.StoreType 并结合 Store,以获取完整的全貌
绑定的数据不符合预期绑定类型不匹配在使用绑定数据之前,请检查 WebExtensionBinding.BindingType(Matrix、Table、Text)

FAQ

如何查找文档中注册的所有 Office 加载项?

枚举 Document.WebExtensionTaskPanes(一个 TaskPaneCollection);每个 TaskPane.WebExtension 为您提供加载项的标识和配置。

我可以使用此 API 添加新的 Web 扩展绑定或属性吗?

是的 — 这些集合(WebExtensionBindingCollection、WebExtensionPropertyCollection 等)支持 Add(),因此您可以构建并将新的 WebExtensionBinding/WebExtensionProperty 对象添加到已有的 WebExtension 中。

WebExtensionBinding 实际上绑定什么?

它将文档数据的一部分链接到加载项,使用 WebExtensionBindingType(Matrix、Table 或 Text)来描述该数据的结构。

我如何读取存储在文档中的自定义加载项设置?

遍历 WebExtension.Properties(一个 WebExtensionPropertyCollection);每个 WebExtensionProperty 都公开一个 Name/Value 对。


API Reference 摘要

类 / 方法描述
Document.WebExtensionTaskPanes文档中已注册的任务窗格的 TaskPaneCollection
TaskPane一个加载项窗格:DockState, Row, Width, IsVisible, IsLocked, WebExtension
WebExtension加载项标识:Id, IsFrozen, Reference, Bindings, Properties
WebExtensionReference加载项来源:Id, Version, Store, StoreType
WebExtensionBinding通过 WebExtensionBindingType 将文档数据链接到加载项
WebExtensionProperty自定义加载项设置为 Name/Value 对

另请参阅

 中文