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/plain
ou 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.