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 对 |