Partilhar via


Tempo de execução somente de JavaScript para funções personalizadas

As funções personalizadas que não utilizam um runtime partilhado utilizam um runtime apenas javaScript concebido para otimizar o desempenho dos cálculos.

Importante

Observe que as funções personalizadas do Excel estão disponíveis nas plataformas a seguir.

  • Office na Web
  • Office no Windows
    • Assinatura do Microsoft 365
    • revenda perpétua do Office 2016 e posterior
    • Office 2021 perpétuo licenciado em volume e posterior
  • Office no Mac

As funções personalizadas do Excel não são atualmente suportadas no seguinte:

  • Office no iPad
  • versões perpétuas licenciadas em volume do Office 2019 ou anterior no Windows

Observação

Recomendamos a utilização de funções personalizadas com um runtime partilhado, a menos que tenha um motivo específico para não utilizar um runtime partilhado. Tenha em atenção que utilizar um runtime partilhado significa que o seu suplemento utilizará o WebView2 (baseado no Microsoft Edge Chromium) se as condições forem cumpridas e, caso contrário, o suplemento utilizará o Trident (Internet Explorer 11), independentemente da versão do Windows ou do Microsoft 365. Para obter uma descrição das condições do WebView2, consulte Browsers e controlos webview utilizados pelos Suplementos do Office. Para obter mais informações sobre runtimes, consulte Runtimes nos Suplementos do Office.

Este runtime apenas javaScript fornece acesso às APIs no OfficeRuntime espaço de nomes que podem ser utilizadas por funções personalizadas e pelo painel de tarefas (que é executado num runtime diferente) para armazenar dados.

Pedir dados externos

É possível solicitar dados externos em uma função personalizada por meio de uma API, como a API Fetch, ou por meio de um objeto XmlHttpRequest (XHR), uma API Web padrão que envia solicitações HTTP para interagir com os servidores.

Tenha em atenção que as funções personalizadas têm de utilizar medidas de segurança adicionais ao efetuar XmlHttpRequests, requerendo a Mesma Política de Origem e CORS simples.

Uma implementação CORS simples não pode utilizar cookies e só suporta métodos simples (GET, HEAD, POST). A CORS simples aceita cabeçalhos simples com nomes de campos Accept, Accept-Language, Content-Language. Também pode utilizar um Content-Type cabeçalho em CORS simples, desde que o tipo de conteúdo seja application/x-www-form-urlencoded, text/plainou multipart/form-data.

Armazenar e aceder a dados

Numa função personalizada que não utiliza um runtime partilhado, pode armazenar e aceder a dados através do objeto OfficeRuntime.storage . O Storage objeto é um sistema de armazenamento de chave-valor persistente, não encriptado, que fornece uma alternativa ao localStorage, que não pode ser utilizado por funções personalizadas que utilizam o runtime apenas javaScript. O Storage objeto oferece 10 MB de dados por domínio. Os domínios podem ser partilhados por mais do que um suplemento.

O Storage objeto é uma solução de armazenamento partilhado, o que significa que várias partes de um suplemento podem aceder aos mesmos dados. Por exemplo, os tokens para autenticação de utilizador podem ser armazenados no Storage objeto porque podem ser acedidos por uma função personalizada (utilizando o runtime apenas javaScript) e um painel de tarefas (utilizando um runtime de webview completo). Da mesma forma, se dois suplementos partilharem o mesmo domínio (por exemplo, www.contoso.com/addin1, www.contoso.com/addin2), também podem partilhar informações de um lado para o outro através do Storage objeto. Tenha em atenção que os suplementos com subdomínios diferentes terão instâncias diferentes de Storage (por exemplo, subdomain.contoso.com/addin1, differentsubdomain.contoso.com/addin2).

Uma vez que o Storage objeto pode ser uma localização partilhada, é importante perceber que é possível substituir pares chave-valor.

Os seguintes métodos estão disponíveis no Storage objeto .

  • getItem
  • getItems
  • setItem
  • setItems
  • removeItem
  • removeItems
  • getKeys

Observação

Não existe nenhum método para limpar todas as informações (como clear). Em vez disso, use removeItems para remover várias entradas de uma só vez.

Exemplo de OfficeRuntime.storage

O seguinte exemplo de código chama o OfficeRuntime.storage.setItem método para definir uma chave e um valor em storage.

function StoreValue(key, value) {

  return OfficeRuntime.storage.setItem(key, value).then(function (result) {
      return "Success: Item with key '" + key + "' saved to storage.";
  }, function (error) {
      return "Error: Unable to save item with key '" + key + "' to storage. " + error;
  });
}

Próximas etapas

Saiba como depurar funções personalizadas.

Confira também