Expandir funções personalizadas com suplementos XLL
Observação
Um suplemento XLL é um ficheiro de suplemento do Excel com a extensão de ficheiro .xll. Um ficheiro XLL é um tipo de ficheiro DLL (Dynamic Link Library) que só pode ser aberto pelo Excel. Os ficheiros de suplemento XLL têm de ser escritos em C ou C++. Consulte Desenvolver XLLs do Excel para saber mais.
Se tiver suplementos XLL do Excel existentes, pode criar suplementos de função personalizada equivalentes com a API JavaScript do Excel para expandir as funcionalidades da solução para outras plataformas, como Excel na Web ou num Mac. No entanto, os suplementos da API JavaScript do Excel não têm todas as funcionalidades disponíveis nos suplementos XLL. Consoante a funcionalidade que a sua solução utiliza, o suplemento XLL pode proporcionar uma melhor experiência no Excel no Windows do que o suplemento API JavaScript do Excel.
Importante
A funcionalidade de suplemento equivalente é suportada pela seguinte plataforma e aplicações. Os suplementos COM não podem ser instalados em nenhuma outra plataforma, por isso, nessas plataformas, o elemento de manifesto que é abordado mais adiante neste artigo, EquivalentAddins
, é ignorado.
- Excel, Word e PowerPoint no Windows (Versão 1904 ou posterior)
- Outlook Clássico no Windows (Versão 2102 ou posterior) numa versão suportada do Exchange Server
Especificar XLL equivalente no manifesto
Para ativar a compatibilidade com um suplemento XLL existente, identifique o suplemento XLL equivalente no manifesto do suplemento da API JavaScript do Excel. Em seguida, o Excel utiliza as funções de suplemento XLL ao executar no Windows, em vez das funções personalizadas do suplemento API JavaScript do Excel.
Para definir o suplemento XLL equivalente para as suas funções personalizadas, especifique o FileName
do ficheiro XLL. Quando o utilizador abre um livro com funções do ficheiro XLL, o Excel converte as funções em funções compatíveis. Em seguida, o livro utiliza o ficheiro XLL quando aberto no Excel no Windows, mas continua a utilizar funções personalizadas do suplemento da API JavaScript do Excel quando aberto na Web ou no Mac.
O exemplo seguinte mostra como especificar um suplemento COM e um suplemento XLL como equivalentes num ficheiro de manifesto de suplemento da API JavaScript do Excel. Muitas vezes, especifica ambos. Para concluir, este exemplo mostra ambos os equivalentes no contexto. São identificados pelos respetivos ProgId
e FileName
respetivamente. O EquivalentAddins
elemento tem de ser posicionado imediatamente antes da etiqueta de fecho VersionOverrides
. Para obter mais informações sobre a compatibilidade do suplemento COM, consulte Tornar o seu Suplemento do Office compatível com um suplemento COM existente.
<VersionOverrides>
...
<EquivalentAddins>
<EquivalentAddin>
<ProgId>ContosoCOMAddin</ProgId>
<Type>COM</Type>
</EquivalentAddin>
<EquivalentAddin>
<FileName>contosofunctions.xll</FileName>
<Type>XLL</Type>
</EquivalentAddin>
</EquivalentAddins>
</VersionOverrides>
Observação
Se um suplemento da API JavaScript do Excel declarar as suas funções personalizadas como compatíveis com um suplemento XLL, alterar o manifesto posteriormente poderá interromper o livro de um utilizador porque irá alterar o formato de ficheiro.
Comportamento da função personalizada para funções compatíveis com XLL
As funções XLL de um suplemento são convertidas em funções personalizadas compatíveis com XLL quando uma folha de cálculo é aberta e existe um suplemento equivalente disponível. Na próxima gravação, as funções XLL são escritas no ficheiro num modo compatível para que funcionem com as funções personalizadas do suplemento XLL e da API JavaScript do Excel (quando em plataformas não suportadas pelo XLL).
A tabela seguinte compara funcionalidades entre funções definidas pelo utilizador XLL, funções personalizadas compatíveis com XLL e funções personalizadas de suplemento da API JavaScript do Excel.
Função definida pelo utilizador XLL | Funções personalizadas compatíveis com XLL | Função personalizada do suplemento da API JavaScript do Excel | |
---|---|---|---|
Plataformas compatíveis | Windows | Windows, macOS, browser | Windows, macOS, browser |
Formatos de ficheiro suportados | XLSX, XLSB, XLSM, XLS | XLSX, XLSB, XLSM | XLSX, XLSB, XLSM |
Conclusão automática de fórmulas | Não | Sim | Sim |
Streaming | Possível através da chamada de retorno xlfRTD e XLL. | Sim | Sim |
Localização de funções | Não | Não. O Nome e o ID têm de corresponder às funções do XLL existentes. | Sim |
Funções voláteis | Sim | Sim | Sim |
Suporte de recálculo com vários threads | Sim | Sim | Sim |
Comportamento de cálculo | Sem IU. O Excel pode não responder durante o cálculo. | Os utilizadores veem #BUSY! até que seja devolvido um resultado. | Os utilizadores veem #BUSY! até que seja devolvido um resultado. |
Conjuntos de requisitos | N/D | CustomFunctions 1.1 e posterior | CustomFunctions 1.1 e posterior |