Estender funções personalizadas com funções definidas pelo usuário XLL

Observação

Um suplemento XLL é um arquivo de suplemento do Excel com a extensão de arquivo .xll. Um arquivo XLL é um tipo de arquivo DLL (biblioteca de link dinâmico) que só pode ser aberto pelo Excel. Os arquivos de suplemento XLL devem ser gravados em C ou C++. Consulte Desenvolver XLLs do Excel para saber mais.

Se você tiver suplementos existentes do Excel XLL, poderá criar suplementos de função personalizada equivalentes usando a API JavaScript do Excel para estender seus recursos de solução para outras plataformas, como Excel na Web ou em um Mac. No entanto, os suplementos de API JavaScript do Excel não têm toda a funcionalidade disponível nos suplementos XLL. Dependendo da funcionalidade que sua solução usa, o suplemento XLL pode fornecer uma experiência melhor no Excel no Windows do que o suplemento de API JavaScript do Excel.

Importante

O recurso de suplemento equivalente é compatível com a plataforma e os aplicativos a seguir. Os suplementos COM não podem ser instalados em nenhuma outra plataforma, portanto, nessas plataformas, o elemento manifesto que é discutido posteriormente neste artigo, EquivalentAddinsé ignorado.

  • Excel, Word e PowerPoint no Windows (versão 1904 ou posterior)
  • Outlook no Windows (versão 2102 ou posterior) em uma versão com suporte do servidor exchange
    • Exchange Online
    • Atualização cumulativa 10 ou posterior do Exchange 2019 (KB5003612)
    • Atualização cumulativa 21 ou posterior do Exchange 2016 (KB5003611)

Especificar XLL equivalente no manifesto

Para habilitar 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 usa as funções de suplemento XLL ao executar no Windows, em vez de suas funções personalizadas de suplemento da API JavaScript do Excel.

Para definir o suplemento XLL equivalente para suas funções personalizadas, especifique o FileName do arquivo XLL. Quando o usuário abre uma pasta de trabalho com funções do arquivo XLL, o Excel converte as funções em funções compatíveis. A pasta de trabalho usa o arquivo XLL quando aberto no Excel no Windows, mas continua a usar funções personalizadas do suplemento de API JavaScript do Excel quando aberto na Web ou no Mac.

O exemplo a seguir mostra como especificar um suplemento COM e um suplemento XLL como equivalentes em um arquivo de manifesto de suplemento da API JavaScript do Excel. Muitas vezes você especifica ambos. Para concluir, este exemplo mostra os dois equivalentes no contexto. Eles são identificados por seus ProgId e FileName respectivamente. O EquivalentAddins elemento deve ser posicionado imediatamente antes da marca de fechamento VersionOverrides . Para obter mais informações sobre a compatibilidade de suplemento com COM, consulte Tornar 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 de API JavaScript do Excel declarar que suas funções personalizadas serão compatíveis com um suplemento XLL, alterar o manifesto posteriormente poderá quebrar a pasta de trabalho de um usuário porque ele alterará o formato do arquivo.

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 planilha é aberta e há um suplemento equivalente disponível. Na próxima salvação, as funções XLL são gravadas no arquivo em um modo compatível para que funcionem com o suplemento XLL e as funções personalizadas de suplemento da API JavaScript do Excel (quando em plataformas sem suporte por XLL).

A tabela a seguir compara recursos entre funções definidas pelo usuário XLL, funções personalizadas compatíveis com XLL e funções personalizadas de suplemento da API JavaScript do Excel.

Função definida pelo usuário XLL Funções personalizadas compatíveis com XLL Função personalizada de suplemento da API JavaScript do Excel
Plataformas compatíveis Windows Windows, macOS, navegador da Web Windows, macOS, navegador da Web
Formatos de arquivo com suporte XLSX, XLSB, XLSM, XLS XLSX, XLSB, XLSM XLSX, XLSB, XLSM
Autocompletar fórmula Não Sim Sim
Streaming Possível por meio de retorno de chamada xlfRTD e XLL. Sim Sim
Localização de funções Não Não. O Nome e a ID devem corresponder às funções existentes da XLL. Sim
Funções voláteis Sim Sim Sim
Suporte a recalculação de vários threads Sim Sim Sim
Comportamento de cálculo Nenhuma interface do usuário. O Excel pode não responder durante o cálculo. Os usuários veem #BUSY! até que um resultado seja retornado. Os usuários veem #BUSY! até que um resultado seja retornado.
Conjuntos de requisitos N/D CustomFunctions 1.1 e posterior CustomFunctions 1.1 e posterior

Confira também