Расширение пользовательских функций с помощью определяемых пользователем функций XLL

Примечание.

Надстройка XLL — это файл надстройки Excel с расширением XLL. XLL-файл — это тип файла библиотеки динамической компоновки (DLL), который может открываться только Excel. Файлы надстроек XLL должны быть записаны на C или C++. Дополнительные сведения см. в статье Разработка excel XLLs .

Если у вас есть надстройки Excel XLL, вы можете создать эквивалентные пользовательские надстройки-функции с помощью API JavaScript для Excel, чтобы расширить возможности решения на других платформах, таких как Excel в Интернете или на Компьютере Mac. Однако надстройки API JavaScript для Excel не имеют всех функциональных возможностей, доступных в надстройках XLL. В зависимости от функциональности, используемой решением, надстройка XLL может обеспечить лучшие возможности в Excel в Windows, чем надстройка API JavaScript для Excel.

Важно!

Эквивалентная функция надстройки поддерживается следующими платформами и приложениями. Надстройки COM нельзя установить на любой другой платформе, поэтому на этих платформах элемент манифеста, который рассматривается далее в этой статье, EquivalentAddinsигнорируется.

  • Excel, Word и PowerPoint в Windows (версия 1904 или более поздняя)
  • Outlook в Windows (версия 2102 или более поздняя) для поддерживаемой версии Exchange Server
    • Exchange Online.
    • Накопительный пакет обновления 10 для Exchange 2019 или более поздней версии (KB5003612)
    • Накопительный пакет обновления 21 для Exchange 2016 или более поздней версии (KB5003611)

Указание эквивалентного XLL в манифесте

Чтобы обеспечить совместимость с существующей надстройкой XLL, определите эквивалентную надстройку XLL в манифесте надстройки API JavaScript для Excel. Затем Excel использует функции надстройки XLL при запуске в Windows вместо пользовательских функций надстройки API JavaScript для Excel.

Чтобы задать эквивалентную надстройку XLL для пользовательских функций, укажите FileName значение XLL-файла. Когда пользователь открывает книгу с функциями из XLL-файла, Excel преобразует функции в совместимые функции. Затем книга использует XLL-файл при открытии в Excel в Windows, но она продолжает использовать пользовательские функции из надстройки API JavaScript для Excel при открытии в Интернете или на Mac.

В следующем примере показано, как указать надстройку COM и надстройку XLL в качестве эквивалентов в файле манифеста надстройки API JavaScript для Excel. Часто указывается и то, и другое. Для полноты в этом примере показаны оба эквивалента в контексте. Они идентифицируются по их ProgId и FileName соответственно. Элемент EquivalentAddins должен располагаться непосредственно перед закрывающим VersionOverrides тегом. Дополнительные сведения о совместимости надстроек COM см. в статье Совместимость надстройки Office с существующей надстройкой COM.

<VersionOverrides>
  ...
  <EquivalentAddins>
    <EquivalentAddin>
      <ProgId>ContosoCOMAddin</ProgId>
      <Type>COM</Type>
    </EquivalentAddin>

    <EquivalentAddin>
      <FileName>contosofunctions.xll</FileName>
      <Type>XLL</Type>
    </EquivalentAddin>
  </EquivalentAddins>
</VersionOverrides>

Примечание.

Если надстройка API JavaScript для Excel объявляет, что ее пользовательские функции совместимы с надстройкой XLL, изменение манифеста позже может нарушить работу книги пользователя, так как она изменит формат файла.

Настраиваемое поведение функций для функций, совместимых с XLL

Функции XLL надстройки преобразуются в пользовательские функции, совместимые с XLL, при открытии электронной таблицы и наличии эквивалентной надстройки. При следующем сохранении функции XLL записываются в файл в совместимом режиме, чтобы они работали как с надстройкой XLL, так и с пользовательскими функциями надстройки API JavaScript для Excel (если на платформах, неподдерживаемых XLL).

В следующей таблице сравниваются функции определяемых пользователем функций XLL, пользовательские функции, совместимые с XLL, и пользовательские функции надстроек API JavaScript для Excel.

Определяемая пользователем функция XLL Пользовательские функции, совместимые с XLL Пользовательская функция надстройки API JavaScript для Excel
Поддерживаемые платформы Windows Windows, macOS, веб-браузер Windows, macOS, веб-браузер
Поддерживаемые форматы файлов XLSX, XLSB, XLSM, XLS XLSX, XLSB, XLSM XLSX, XLSB, XLSM
Автозавершение формул Нет Да Да
Подписка с потоковой передачей Возможно с помощью обратного вызова xlfRTD и XLL. Да Да
Локализация функций Нет Нет. Имя и идентификатор должны соответствовать существующим функциям XLL. Да
Переменные функции Да Да Да
Поддержка многопоточного пересчета Да Да Да
Режим вычислений Нет пользовательского интерфейса. Excel может не отвечать на запросы во время вычисления. Пользователи видят #BUSY! пока не будет возвращен результат. Пользователи видят #BUSY! пока не будет возвращен результат.
Наборы требований Недоступно CustomFunctions 1.1 и более поздних версий CustomFunctions 1.1 и более поздних версий

См. также