Extensões da Web
Extensões Web
Este guia mostra como ler e modificar os metadados do painel de tarefas de complementos do Office incorporados em um arquivo .docx com Aspose.Words FOSS para .NET. Aspose.Words FOSS para .NET pode ler e modificar os painéis de tarefas da extensão web (Office Add-in) incorporados em um arquivo .docx — os metadados que associam um documento a um complemento do Office e o vinculam aos dados do documento — através de Document.WebExtensionTaskPanes e do modelo de objetos TaskPane/WebExtension.
Painéis de Tarefas
Document.WebExtensionTaskPanes retorna um TaskPaneCollection de objetos TaskPane. Cada TaskPane descreve onde e como o painel de um complemento está ancorado: DockState (um TaskPaneDockState de Right ou Left), Row, Width, IsLocked e IsVisible, além de uma propriedade WebExtension que vincula ao próprio complemento.
Identidade e Referências da Extensão Web
WebExtension identifica o complemento via Id e IsFrozen, e sua propriedade Reference (um WebExtensionReference) expõe Id, Version, Store e StoreType (um WebExtensionStoreType como SPCatalog, Exchange ou FileSystem) que descrevem de onde o complemento é distribuído. AlternateReferences contém um WebExtensionReferenceCollection de referências de fallback.
Vinculações e Propriedades Personalizadas
WebExtension.Bindings é um WebExtensionBindingCollection de objetos WebExtensionBinding, cada um construído como new WebExtensionBinding(id, bindingType, appRef) e vinculando parte dos dados do documento ao add-in via um WebExtensionBindingType (Matrix, Table ou Text). WebExtension.Properties é um WebExtensionPropertyCollection de pares simples de nome/valor WebExtensionProperty, construído como new WebExtensionProperty(name, value), usado para configurações personalizadas específicas do add-in que não justificam um binding completo.
Associação à Coleção
TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection e WebExtensionReferenceCollection compartilham o mesmo comportamento básico de coleção: Add(item), Clear(), Remove(index), GetEnumerator() e Count.
Dicas e Melhores Práticas
- Verifique
TaskPane.IsVisibleantes de presumir que o painel de um add-in está atualmente exibido ao usuário — um painel de tarefas pode estar registrado, mas oculto. WebExtensionReference.StoreTypeinforma de onde o add-in foi obtido (catálogo, Exchange, sistema de arquivos, registro); use-o para distinguir add-ins de primeira parte dos add-ins carregados manualmente.- Bindings vinculam um
WebExtensionBindingTypeespecífico (matriz, tabela ou texto simples) aos dados do documento — verifique o tipo de binding antes de presumir qual formato de dados um add-in espera. - Use
WebExtension.Propertiespara valores simples de configuração de nome/valor do add-in, em vez de tentar armazená-los em outro local do documento.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Document.WebExtensionTaskPanes está vazio | O documento não tem Office Add-ins registrados | Confirme se a origem .docx realmente incorpora um painel de tarefas antes de supor que o API está quebrado |
| Não é possível determinar de qual loja um add-in veio | StoreType não verificado | Leia WebExtensionReference.StoreType junto com Store para ter o quadro completo |
| Os dados de binding não correspondem às expectativas | Tipo de binding incompatível | Verifique WebExtensionBinding.BindingType (Matrix, Table, Text) antes de consumir os dados vinculados |
FAQ
Como encontro todos os Office Add-ins registrados em um documento?
Enumere Document.WebExtensionTaskPanes (um TaskPaneCollection); cada TaskPane.WebExtension fornece a identidade e a configuração do suplemento.
Posso adicionar uma nova ligação de extensão web ou propriedade com este API?
Sim — as coleções (WebExtensionBindingCollection, WebExtensionPropertyCollection, etc.) suportam Add(), portanto você pode construir e adicionar novos objetos WebExtensionBinding/WebExtensionProperty a um WebExtension existente.
O que WebExtensionBinding realmente vincula?
Ele vincula uma parte dos dados do documento ao suplemento, usando um WebExtensionBindingType (Matrix, Table ou Text) para descrever a estrutura desses dados.
Como leio as configurações personalizadas do add-in armazenadas no documento?
Iterar WebExtension.Properties (um WebExtensionPropertyCollection); cada WebExtensionProperty expõe um par Name/Value.
API Reference Resumo
| Classe / Método | Descrição |
|---|---|
Document.WebExtensionTaskPanes | TaskPaneCollection de painéis de tarefas registrados no documento |
TaskPane | Um painel de complemento: DockState, Row, Width, IsVisible, IsLocked, WebExtension |
WebExtension | Identidade do complemento: Id, IsFrozen, Reference, Bindings, Properties |
WebExtensionReference | Fonte do complemento: Id, Version, Store, StoreType |
WebExtensionBinding | Vincula os dados do documento ao complemento via WebExtensionBindingType |
WebExtensionProperty | Configuração de complemento personalizada como um par Name/Value |