A Microsoft anunciou recentemente uma versão preliminar para desenvolvedor que suporta JavaScript para criar funções personalizadas no Excel. Essa adição vai além da API JavaScript existente no Microsoft Office, que é limitada para a criação de suplementos ou aplicativos para Web que interagem com modelos de objeto nos aplicativos do Office.
A equipe da Microsoft Office criou um repositório no Github com código-fonte para ensinar como usar JavaScript nas funções do Excel. O repositório de exemplo separa a funcionalidade em quatro áreas principais:
- JavaScript: código-fonte de função personalizada;
- JSON: metadados usados pelo Excel para mostrar as funções personalizadas disponíveis;
- HTML: mecanismo de liberação de visualização para referenciar o código-fonte JavaScript relevante e um método para inicializar uma função personalizada;
- XML: informa ao Excel sobre o local e o namespace da função personalizada e seus recursos.
Funções personalizadas não tem interface de usuário associada e os desenvolvedores não devem tentar manipular o DOM. O projeto espera remover o arquivo HTML para a inicialização da função personalizada antes da liberação final desse recurso.
Modernos recursos de JavaScript, como Promises, são suportados permitindo que os desenvolvedores definam funções personalizadas de modo síncronas, com valores calculados rapidamente, ou assíncronas, em cálculos que podem demorar um pouco para serem concluídos. Streams, uma promessa assíncrona que retorna um valor várias vezes, em vez de apenas uma vez também é uma opção para funções JavaScript personalizadas no Excel.
O JavaScript do Excel utiliza o mesmo mecanismo JavaScript do Chakra usado pelo navegador Edge da Microsoft. Essa adição traz alguma paridade ao Google Sheets, que já suporta JavaScript em suas funções personalizadas.
Atualmente, o suporte a funções personalizadas está limitado às versões para desenvolvedor Excel para Windows, Mac e Excel Online. Funções personalizadas não estão atualmente disponíveis para o Excel em dispositivos móveis ou em versões de produção do Excel.
Os usuários do TypeScript também podem escrever funções JavaScript personalizadas. Como qualquer outro ambiente JavaScript, o código TypeScript deve ser convertido para JavaScript. A Microsoft não pretende fornecer suporte direto ao TypeScript no Excel.
Embora não haja uma data oficial de lançamento para a produção de funções JavaScript personalizadas no Excel, os interessados em funções JavaScript personalizadas no Excel devem testar essa versão de visualização e fornecer feedback para a equipe do Office.