Расширение пользовательских функций с помощью надстроек 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
Указание эквивалентного 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 и более поздних версий |
См. также
Office Add-ins