Среда выполнения только для JavaScript для пользовательских функций
Пользовательские функции, которые не используют общую среду выполнения, используют среду выполнения, предназначенную только для JavaScript , которая предназначена для оптимизации производительности вычислений.
Важно!
Обратите внимание, что настраиваемые функции доступны в Excel на следующих платформах.
- Office в Интернете
- Office для Windows
- Подписка на Microsoft 365
- Розничный бессрочный Office 2016 и более поздних версий
- Корпоративный бессрочный Office 2021 и более поздних версий
- Office для Mac
Пользовательские функции Excel в настоящее время не поддерживаются в следующих приложениях:
- Office для iPad
- корпоративные бессрочные версии Office 2019 или более ранних версий в Windows
Примечание.
Мы рекомендуем использовать пользовательские функции с общей средой выполнения, если у вас нет конкретных причин не использовать общую среду выполнения. Обратите внимание, что использование общей среды выполнения означает, что ваша надстройка будет использовать WebView2 (на основе Microsoft Edge Chromium) при соблюдении условий, а в противном случае ваша надстройка будет использовать Trident (Internet Explorer 11) независимо от версии Windows или Microsoft 365. Описание условий WebView2 см. в статье Браузеры и элементы управления webview, используемые надстройками Office. Дополнительные сведения о средах выполнения см. в разделе Среды выполнения в надстройках Office.
Эта среда выполнения, доступная только для JavaScript, предоставляет доступ к API в OfficeRuntime
пространстве имен, которые могут использоваться пользовательскими функциями и областью задач (которая выполняется в другой среде выполнения) для хранения данных.
Запрос внешних данных
В пределах пользовательской функции можно запрашивать внешние данные с помощью такого API, как Fetch, или с помощью XmlHttpRequest (XHR) — стандартного веб-API, который отправляет HTTP-запросы для взаимодействия с серверами.
Имейте в виду, что пользовательские функции должны использовать дополнительные меры безопасности при создании XmlHttpRequests, требуя той же политики источника и простой CORS.
Простая реализация CORS не может использовать файлы cookie и поддерживает только простые методы (GET, HEAD, POST). Простые запросы CORS принимают простые заголовки с именами полей Accept
, Accept-Language
, Content-Language
. Вы также можете использовать заголовок в простом Content-Type
CORS при условии, что тип контента : application/x-www-form-urlencoded
, text/plain
или multipart/form-data
.
Хранение данных и доступ к ней
В пользовательской функции, которая не использует общую среду выполнения, вы можете хранить данные и получать доступ к ним с помощью объекта OfficeRuntime.storage . Объект Storage
представляет собой постоянную, незашифрованную систему хранения "ключ-значение", которая предоставляет альтернативу localStorage, которая не может использоваться пользовательскими функциями, используюющими среду выполнения только JavaScript. Объект Storage
предоставляет 10 МБ данных на домен. Домены могут совместно использоваться несколькими надстройками.
Объект Storage
является решением общего хранилища, то есть несколько частей надстройки могут получить доступ к одинаковым данным. Например, маркеры для проверки подлинности пользователей могут храниться в объекте Storage
, так как к нему могут обращаться как пользовательская функция (с помощью среды выполнения, доступной только для JavaScript), так и область задач (с помощью полной среды выполнения webview). Аналогичным образом, если две надстройки совместно используют один и тот же домен (например, www.contoso.com/addin1
, ), www.contoso.com/addin2
они также могут обмениваться информацией через Storage
объект . Обратите внимание, что надстройки с разными поддоменами будут иметь разные экземпляры Storage
(например, subdomain.contoso.com/addin1
, differentsubdomain.contoso.com/addin2
).
Storage
Так как объект может быть общим расположением, важно понимать, что можно переопределить пары "ключ-значение".
Для объекта доступны Storage
следующие методы.
getItem
getItems
setItem
setItems
removeItem
removeItems
getKeys
Примечание.
Нет метода для очистки всех сведений (например clear
, ). Вместо этого вам следует использовать removeItems
для одновременного удаления нескольких записей.
Пример OfficeRuntime.storage
В следующем примере кода вызывается OfficeRuntime.storage.setItem
метод , чтобы задать ключ и значение в storage
.
function StoreValue(key, value) {
return OfficeRuntime.storage.setItem(key, value).then(function (result) {
return "Success: Item with key '" + key + "' saved to storage.";
}, function (error) {
return "Error: Unable to save item with key '" + key + "' to storage. " + error;
});
}
Дальнейшие действия
Узнайте, как отлаживать пользовательские функции.
См. также
Office Add-ins