Modelo de objeto comum de API JavaScript para Office
Importante
Este artigo se aplica às APIs Comuns, o modelo de API JavaScript do Office que foi introduzido com o Office 2013. Essas APIs incluem recursos como interface de usuário, caixas de diálogo e configurações de cliente, que são comuns entre vários tipos de aplicativos do Office. Os suplementos do Outlook usam exclusivamente APIs comuns, especialmente o subconjunto de APIs expostos por meio do objetoCaixa de Correio.
Você só deve usar APIs comuns para cenários que não têm suporte por APIs específicas do aplicativo. Para saber quando usar APIs comuns em vez de APIs específicas do aplicativo, confira Entendendo a API de JavaScript do Office.
As APIs JavaScript do Office dão acesso à funcionalidade subjacente do aplicativo cliente do Office. A maioria desse acesso percorre alguns objetos importantes. O objeto contexto oferece acesso ao tempo de execução ambiente depois de inicialização. O objetodocumento oferece o controle do usuário a um documento do Excel, PowerPoint ou Word. O objeto Mailbox fornece um suplemento do Outlook acesso a mensagens, compromissos e perfis de usuário. Entender as relações entre esses objetos de alto nível é a base de um Suplemento do Office.
Objeto de contexto
Aplica-se a: todos os tipos de suplementos
Quando um suplemento é inicializado, ele possui diversos objetos diferentes com os quais pode interagir no ambiente do tempo de execução. O contexto do tempo de execução do suplemento é refletido na API por meio do objeto Contexto. OContexto é o principal objeto que fornece acesso aos objetos mais importantes da API, como os objetos Documento e Caixa de correio que, por sua vez, fornecem acesso ao conteúdo do documento e da caixa de correio.
Por exemplo, no painel de tarefas ou suplementos de conteúdo, você pode usar a propriedade document do objeto Context para acessar as propriedades e métodos do objeto Document para interagir com o conteúdo de documentos Word, planilhas do Excel ou agendamentos do Projeto. Da mesma forma, nos suplementos do Outlook, você pode usar a propriedade caixa de correio do objeto Context para acessar as propriedades e os métodos do objeto Mailbox para interagir com o conteúdo da mensagem, da solicitação de reunião ou do compromisso.
O objeto Context também fornece acesso às propriedades contentLanguage e displayLanguage que permitem determinar a localidade (linguagem) usada no documento ou item ou pelo aplicativo do Office. A propriedade roamingSettings permite que você acesse os membros do objeto RoamingSettings, que armazena configurações específicas para o suplemento para caixas de correio de usuários individuais. Por fim, o objeto Contexto fornece uma propriedade ui que permite que o suplemento inicie caixas de diálogo pop-up.
Objeto Document
Aplica-se a: tipos de suplemento de conteúdo e painel de tarefas
Para interagir com dados do documento no Excel, PowerPoint e Word, a API fornece o objeto Document. Você pode usar Document
membros do objeto para acessar dados das seguintes maneiras.
Ler e gravar as seleções ativas na forma de texto, células contíguas (matrizes) ou tabelas.
Dados tabulares (matrizes ou tabelas).
Associações (criadas com os métodos "add" do
Bindings
objeto).Partes XML personalizadas (somente para Word).
Configurações ou estado do suplemento persistido por suplemento no documento.
Você também pode usar o Document
objeto para interagir com dados em documentos do Project. A funcionalidade específica do Project para a API está documentada nos membros da classe abstrata ProjectDocument. Para saber mais sobre a criação de suplementos de painel de tarefas, consulte Suplementos de painel de tarefas para o Project.
Todas essas formas de acesso a dados começam a partir de uma instância do objeto abstrato Document
.
Você pode acessar uma instância do Document
objeto quando o painel de tarefas ou o suplemento de conteúdo for inicializado usando a propriedade document do Context
objeto. O Document
objeto define métodos comuns de acesso a dados compartilhados entre documentos do Word e do Excel e também fornece acesso ao CustomXmlParts
objeto para documentos Word.
O Document
objeto dá suporte a quatro maneiras de os desenvolvedores acessarem o conteúdo do documento.
Acesso baseado em seleção
Acesso baseado em associação
Acesso baseado em partes personalizadas do XML (apenas para Word)
Acesso baseado em documento (somente para Word e PowerPoint)
Para ajudá-lo a entender como os métodos de acesso de dados baseados na seleção e na associação funcionam, explicaremos como as APIs de acesso aos dados proporcionam acesso consistente aos dados de diferentes aplicativos do Office.
Acesso consistente aos dados entre aplicativos do Office
Aplica-se a: tipos de suplemento de conteúdo e painel de tarefas
Para criar extensões que funcionam perfeitamente em diferentes documentos do Office, a API JavaScript do Office abstrai as particularidades de cada aplicativo do Office por meio de tipos de dados comuns e a capacidade de coagir diferentes conteúdos de documentos em três tipos de dados comuns.
Tipo comuns de dados
Nos acessos a dados baseados em seleção e em associação, os conteúdos dos documentos são expostos por meio dos tipos de dados comuns a todos os aplicativos compatíveis do Office. Há suporte para três tipos de dados main.
Tipo de dados | Descrição | Suporte ao aplicativo de host |
---|---|---|
Texto | Fornece uma representação, em uma cadeia de caracteres, dos dados na seleção ou associação. | No Excel, No Project e no PowerPoint, há suporte apenas para texto simples. Em Word, há suporte para três formatos de texto: texto sem formatação, HTML e OOXML (Office Open XML). Quando o texto é selecionado em uma célula no Excel, os métodos baseados em seleção realizam os processos de leitura e gravação para todo o conteúdo da célula, mesmo que apenas uma parte do texto esteja selecionada na célula. Quando texto é selecionado no Word e no PowerPoint, os métodos baseados em seleção realizam os processos de leitura e gravação apenas para os caracteres selecionados. O Project e o PowerPoint dão suporte apenas ao acesso a dados baseados em seleção. |
Matriz | Fornece os dados na seleção ou associação como uma Array bidimensional, que, no JavaScript, é implementada como uma matriz de matrizes. Por exemplo, duas linhas de valores string em duas colunas seriam [['a', 'b'], ['c', 'd']] , e uma única coluna com três linhas seria [['a'], ['b'], ['c']] . |
O acesso a dados de matriz só tem suporte no Excel e no Word. |
Table | Fornece os dados na seleção ou associação como um objeto TableData. O TableData objeto expõe os dados por meio das headers propriedades e rows . |
O acesso a dados de tabela só tem suporte no Excel e no Word. |
Coerção de tipo de dados
Os métodos de acesso de Document
dados nos objetos e Associação dão suporte à especificação do tipo de dados desejado usando o parâmetro coercionType desses métodos e os valores de enumeração coercionType correspondentes. Independentemente da forma real da associação, os diferentes aplicativos do Office dão suporte aos tipos de dados comuns ao tentar forçar os dados a usarem o tipo de dados solicitado. Por exemplo, se uma tabela ou um parágrafo do Word for selecionado, o desenvolvedor pode escolher se deseja lê-lo como texto sem formatação, Office Open XML ou tabela, e a implementação da API manipula as conversões de dados e as transformações necessárias.
Dica
Quando devo usar a matriz ou a tabela coercionType para o acesso aos dados? Se você precisar de seus dados tabulares para crescer dinamicamente quando linhas e colunas forem adicionadas e trabalhar com cabeçalhos de tabela, use o tipo de dados de tabela (especificando o parâmetro coercionType de um Document
método de acesso de dados de objeto ou Binding
como "table"
ou Office.CoercionType.Table
). A adição de linhas e colunas na estrutura de dados tem suporte nos dados de tabela e matriz, mas o acréscimo de linhas e colunas só tem suporte para dados de tabela. Se você não estiver planejando adicionar linhas e colunas e seus dados não exigirem funcionalidade de cabeçalho, use o tipo de dados de matriz (especificando o parâmetro coercionType do método de acesso de dados como "matrix"
ou Office.CoercionType.Matrix
), que fornece um modelo mais simples de interação com os dados.
Se os dados não puderem ser forçados para o tipo especificado, a propriedade AsyncResult.status presente nos retornos de chamada retorna "failed"
, e você pode usar a propriedade AsyncResult.error para acessar um objeto Error com informações sobre o motivo pelo qual a chamada de método falhou.
Trabalhar com seleções usando o objeto Document
O Document
objeto expõe métodos que permitem ler e gravar na seleção atual do usuário de forma "obter e definir". Para fazer isso, o Document
objeto fornece os getSelectedDataAsync
métodos e setSelectedDataAsync
.
Para obter exemplos de códigos que demostram como realizar tarefas com seleções, consulte Ler e gravar dados na seleção ativa em um documento ou uma planilha.
Trabalhar com associações usando os objetos Associações e Associação
O acesso a dados baseado em associação habilita os suplementos de conteúdo e painel de tarefas a acessarem de forma consistente determinada região de um documento ou uma planilha por meio de um identificador vinculado a uma associação. Primeiro, o suplemento precisa estabelecer a associação chamando um dos métodos que vinculam uma parte do documento a um identificador exclusivo: addFromPromptAsync, addFromSelectionAsync ou addFromNamedItemAsync. Depois que a associação é estabelecida, o suplemento pode usar o identificador fornecido para acessar os dados contidos na região vinculada do documento ou da planilha. A criação de associações fornece o valor a seguir para seu suplemento.
Permite o acesso a estruturas comuns de dados em aplicativos compatíveis do Office, como: tabelas, intervalos ou texto (uma execução contígua de caracteres).
Habilita operações de leitura/gravação sem exigir que o usuário realize uma seleção.
Estabelece uma relação entre o suplemento e os dados presentes no documento. As associações estão presentes no documento e podem ser acessadas em um momento posterior.
A criação de uma associação também permite que você se inscreva em eventos de alteração de seleção e de dados que apresentem um escopo definido para essa região específica do documento ou da planilha. Isso significa que o suplemento só é notificado sobre alterações que ocorrem dentro da região associada, e não sobre alterações gerais que ocorrem em todo o documento ou planilha.
O objeto Bindings expõe um método getAllAsync que dá acesso ao conjunto de todas as associações estabelecidas no documento ou planilha. Uma associação individual pode ser acessada por sua ID usando o método Bindings.getBindingByIdAsync ou a função Office.select . Você pode estabelecer novas associações, bem como remover as existentes usando um dos seguintes métodos do Bindings
objeto: addFromSelectionAsync, addFromPromptAsync, addFromNamedItemAsync ou releaseByIdAsync.
Há três tipos diferentes de associações que você especifica com o parâmetro bindingType ao criar uma associação com os addFromSelectionAsync
métodos ou addFromNamedItemAsync
. addFromPromptAsync
Tipo de associação | Descrição | Suporte ao aplicativo de host |
---|---|---|
Associação de texto | Associa a uma região do documento que pode ser representada como um texto. | No Word, a maioria das seleções contíguas são válidas, enquanto no Excel apenas as seleções de células únicas podem ser usadas para uma associação de texto. No Excel, só há suporte para texto sem formatação. No Word, há suporte para três formatos: texto sem formatação, HTML e Open XML do Office. |
Associação de matriz | Associa a uma região fixa de um documento que contém dados tabulares sem cabeçalhos. Os dados de uma associação de matriz são gravados ou lidos como uma Array bidimensional, que é implementada como uma matriz de matrizes no JavaScript. Por exemplo, duas linhas de valores string em duas colunas podem ser gravadas ou lidas como [['a', 'b'], ['c', 'd']] , e uma única coluna de três linhas pode ser gravada ou lida como [['a'], ['b'], ['c']] . |
No Excel, qualquer seleção contígua de células pode ser usada para estabelecer uma associação de matriz. No Word, apenas as tabelas dão suporte à associação de matriz. |
Associação de tabelas | Associa a uma região de um documento que contém uma tabela com cabeçalhos. Os dados em uma associação de tabela são gravados ou lidos como um objeto TableData. O TableData objeto expõe os dados por meio das propriedades cabeçalhos e linhas . |
Qualquer tabela do Excel ou Word pode ser a base para uma associação de tabela. Após estabelecer uma associação de tabelas, as linhas ou colunas novas que um usuário adicionar à tabela são automaticamente incluídas na associação. |
Depois que uma associação é criada usando um dos três métodos de "adicionar" do Bindings
objeto, você pode trabalhar com os dados e as propriedades da associação usando os métodos do objeto correspondente: MatrixBinding, TableBinding ou TextBinding. Todos esses três objetos herdam os métodos getDataAsync e setDataAsync do Binding
objeto que permitem interagir com os dados vinculados.
Para obter exemplos de códigos que demonstram como realizar tarefas com associações, consulte Associar a regiões em um documento ou uma planilha.
Trabalhe com partes XML personalizadas usando os objetos CustomXmlParts e CustomXmlPart
Aplica-se a: suplementos de painel de tarefas para Word
Os objetos CustomXmlParts e CustomXmlPart da API fornecem acesso a partes XML personalizadas de documentos do Word, que permitem a manipulação orientada por XML de conteúdo do documento. Para demonstrações de trabalho com os CustomXmlParts
objetos eCustomXmlPart
, consulte o exemplo de código Word-add-in-Work-with-custom-XML-parts.
Trabalhe com todo o documento usando o método getFileAsync
Aplica-se a: suplementos de painel de tarefas para Word e PowerPoint
O método Document.getFileAsync e os membros dos objetos File e Slice fornecem a funcionalidade necessária para obter documentos inteiros do Word e PowerPoint em fatias (frações) de até 4 MB por vez. Para saber mais, consulte Obter todo o documento por meio de um suplemento para PowerPoint ou Word.
Objeto Mailbox
Aplica-se a: suplementos do Outlook
Os suplementos do Outlook usam principalmente um subconjunto da API exposta no objeto Mailbox. Para acessar os objetos e membros especificamente para uso em suplementos do Outlook, como o objeto Item , use a propriedade caixa de correio do objeto Context para acessar o objeto Mailbox , conforme mostrado na linha de código a seguir.
// Access the Item object.
const item = Office.context.mailbox.item;
Além disso, os suplementos do Outlook podem usar os seguintes objetos.
Objeto Office: para inicialização.
Objeto Context: para acesso a propriedades de conteúdo e idioma de exibição.
Objeto RoamingSettings: para salvar as configurações personalizadas do suplemento do Outlook na caixa de correio do usuário em que o suplemento está instalado.
Para obter informações sobre como usar o JavaScript em suplementos do Outlook, confira Suplementos do Outlook .
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de