Office.Context interface
Представляет среду выполнения надстройки и открывает доступ к ключевым объектам API. Текущий контекст существует как свойство Office. Доступ к нему осуществляется с помощью Office.context.
Комментарии
Сведения о поддержке
Дополнительные сведения о требованиях к приложению и серверу Office см. в статье Требования к запуску надстроек Office.
Поддерживаемые приложения по платформам
| Office в Интернете | Office для Windows | Office для Mac | Office для iPad | Outlook на мобильных устройствах | |
|---|---|---|---|---|---|
| Excel | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
| Outlook | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
| PowerPoint | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
| Проект | Не поддерживается | Поддерживается | Поддерживается | Не поддерживается | Неприменимо |
| Word | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
Примеры
// Get the Office host, version, and platform in which the add-in is running.
const contextInfo = Office.context.diagnostics;
console.log("Office application: " + contextInfo.host);
console.log("Office version: " + contextInfo.version);
console.log("Platform: " + contextInfo.platform);
Свойства
| commerce |
True, если текущая платформа позволяет надстройке отображать пользовательский интерфейс для продажи или обновления; в противном случае возвращает значение False. |
| content |
Получает указанный пользователем языковой стандарт (язык) для редактирования документа или элемента. |
| diagnostics | Получает сведения о среде, в которой работает надстройка. |
| display |
Получает языковой стандарт (язык), указанный пользователем для пользовательского интерфейса приложения Office. |
| document | Получает объект, представляющий документ, с которым взаимодействует контентная надстройка или надстройка области задач. |
| host | Содержит приложение Office, в котором выполняется надстройка. |
| license | Получает сведения о лицензии для установки Office пользователем. |
| mailbox | Предоставляет доступ к объектной модели надстроек Microsoft Outlook. |
| office |
Предоставляет доступ к свойствам цветов темы Office. |
| partition |
Получает ключ раздела для локального хранилища. Надстройки должны использовать этот ключ секции как часть ключа хранилища для безопасного хранения данных. Ключ раздела находится |
| platform | Предоставляет платформу, на которой работает надстройка. |
| requirements | Метод определения наборов требований, поддерживаемых в текущем приложении и платформе Office. |
| roaming |
Получает объект, представляющий настраиваемые параметры или состояние надстройки почты, сохраненное в почтовом ящике пользователя. Этот |
| sensitivity |
Получает объект для проверки состояния каталога меток конфиденциальности в Outlook и получения всех доступных меток конфиденциальности, если каталог включен. |
| touch |
Определяет, поддерживает ли платформа и устройство сенсорное взаимодействие. True, если надстройка работает на сенсорном устройстве, например iPad; в противном случае false. |
| ui | Предоставляет объекты и методы, которые можно использовать для создания компонентов пользовательского интерфейса, например диалоговых окон, и управления ими. |
| urls | Получает объект для получения URL-адресов среды выполнения надстройки. |
Сведения о свойстве
commerceAllowed
True, если текущая платформа позволяет надстройке отображать пользовательский интерфейс для продажи или обновления; в противном случае возвращает значение False.
commerceAllowed: boolean;
Значение свойства
boolean
Комментарии
Приложения: Excel, Word
commerceAllowed поддерживается только в Office на iPad.
App Store для iOS не поддерживает apps с надстройками, которые предоставляют ссылки на дополнительные системы платежей. Однако надстройки Office, работающие в Office на рабочем столе Windows или в браузере, допускают такие ссылки. Если вы хотите, чтобы пользовательский интерфейс вашей надстройки предоставлял ссылку на внешнюю платежную систему на платформах, отличных от iOS, вы можете использовать свойство commerceAllowed, чтобы управлять отображением этой ссылки.
Примеры
// Detect iPad users so your add-in can switch to an iPad-specific experience.
const isTouchEnabled = Office.context.touchEnabled;
const allowCommerce = Office.context.commerceAllowed;
// On iPad, touchEnabled returns true and commerceAllowed returns false.
if (isTouchEnabled && !allowCommerce) {
enableIPadInterface();
hideCommerceFeatures();
}
contentLanguage
Получает указанный пользователем языковой стандарт (язык) для редактирования документа или элемента.
contentLanguage: string;
Значение свойства
string
Комментарии
Значение contentLanguage отражает параметр языка редактирования, указанный в параметре параметров файла>>в приложении Office.
Сведения о поддержке
Дополнительные сведения о требованиях к приложению и серверу Office см. в статье Требования к запуску надстроек Office.
Поддерживаемые приложения по платформам
| Office в Интернете | Office для Windows | Office для Mac | Office для iPad | Outlook на мобильных устройствах | |
|---|---|---|---|---|---|
| Excel | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | Неприменимо |
| Outlook | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
| PowerPoint | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | Неприменимо |
| Проект | Не поддерживается | Поддерживается | Не поддерживается | Не поддерживается | Неприменимо |
| Word | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | Неприменимо |
Примеры
function sayHelloWithContentLanguage() {
const myContentLanguage = Office.context.contentLanguage;
switch (myContentLanguage) {
case 'en-US':
write('Hello!');
break;
case 'en-NZ':
write('G\'day mate!');
break;
}
}
// Function that writes to a div with id='message' on the page.
function write(message) {
document.getElementById('message').innerText += message;
}
diagnostics
Получает сведения о среде, в которой работает надстройка.
diagnostics: ContextInformation;
Значение свойства
Комментарии
Важно! В Outlook это свойство доступно, начиная с набора требований к почтовому ящику 1.5. Для всех наборов требований к почтовым ящикам можно использовать свойство Office.context.mailbox.диагностика, чтобы получить аналогичную информацию.
Примеры
const contextInfo = Office.context.diagnostics;
console.log("Office application: " + contextInfo.host);
console.log("Office version: " + contextInfo.version);
console.log("Platform: " + contextInfo.platform);
displayLanguage
Получает языковой стандарт (язык), указанный пользователем для пользовательского интерфейса приложения Office.
displayLanguage: string;
Значение свойства
string
Комментарии
Возвращаемое значение представляет собой строку в формате тега RFC 1766 Language, например en-US.
Это displayLanguage значение соответствует текущему параметру языка интерфейса, заданному в разделе "Язык>параметров файла>" в приложении Office.
При использовании в Outlook применимы режимы Compose или чтения.
Сведения о поддержке
Дополнительные сведения о требованиях к приложению и серверу Office см. в статье Требования к запуску надстроек Office.
Поддерживаемые приложения по платформам
| Office в Интернете | Office для Windows | Office для Mac | Office для iPad | Outlook на мобильных устройствах | |
|---|---|---|---|---|---|
| Excel | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
| Outlook | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
| PowerPoint | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
| Проект | Не поддерживается | Поддерживается | Поддерживается | Не поддерживается | Неприменимо |
| Word | Не поддерживается | Поддерживается | Поддерживается | Поддерживается | Неприменимо |
Примеры
function sayHelloWithDisplayLanguage() {
const myDisplayLanguage = Office.context.displayLanguage;
switch (myDisplayLanguage) {
case 'en-US':
write('Hello!');
break;
case 'en-NZ':
write('G\'day mate!');
break;
}
}
// Function that writes to a div with id='message' on the page.
function write(message) {
document.getElementById('message').innerText += message;
}
document
Получает объект, представляющий документ, с которым взаимодействует контентная надстройка или надстройка области задач.
document: Office.Document;
Значение свойства
Примеры
// Extension initialization code.
let _document;
// The initialize function is required for all add-ins.
Office.initialize = function () {
// Checks for the DOM to load using the jQuery ready method.
$(document).ready(function () {
// After the DOM is loaded, code specific to the add-in can run.
// Initialize instance variables to access API objects.
_document = Office.context.document;
});
}
host
Содержит приложение Office, в котором выполняется надстройка.
host: HostType;
Значение свойства
Комментарии
Важно! В Outlook это свойство доступно, начиная с набора требований к почтовому ящику 1.5. Это свойство также можно использовать, Office.context.diagnostics чтобы приложение начиналось с набора требований 1.5. Для всех наборов требований к почтовым ящикам можно использовать свойство Office.context.mailbox.диагностика, чтобы получить аналогичную информацию.
Примеры
const host = Office.context.host;
if (host === Office.HostType.Excel || host === Office.HostType.PowerPoint || host === Office.HostType.Word) {
// Do something.
} else if (host === Office.HostType.Outlook) {
// Do something.
}
license
Получает сведения о лицензии для установки Office пользователем.
license: object;
Значение свойства
object
Примеры
const license = Office.context.license;
console.log(`Office license: ${license}`);
mailbox
Предоставляет доступ к объектной модели надстроек Microsoft Outlook.
mailbox: Office.Mailbox;
Значение свойства
Комментарии
Минимальный уровень разрешений: restricted
Применимый режим Outlook: Compose или чтение
Основные свойства:
diagnostics: предоставляет диагностические сведения для надстройки Outlook.item: предоставляет методы и свойства для доступа к сообщению или встрече в надстройке Outlook.userProfile: предоставляет сведения о пользователе в надстройке Outlook.
Дополнительные сведения об Mailbox этом объекте см. в статье API надстроек Outlook.
Примеры
// The following line of code access the item object of the JavaScript API for Office.
const item = Office.context.mailbox.item;
officeTheme
Предоставляет доступ к свойствам цветов темы Office.
officeTheme: OfficeTheme;
Значение свойства
Комментарии
Важно! В Outlook officeTheme поддерживается начиная с требования к почтовому ящику 1.14. Она не поддерживается в надстройках Outlook, реализующих активацию на основе событий.
Примеры
function applyOfficeTheme() {
// Identify the current Office theme in use.
const currentOfficeTheme = Office.context.officeTheme.themeId;
if (currentOfficeTheme === Office.ThemeId.Colorful || currentOfficeTheme === Office.ThemeId.White) {
console.log("No changes required.");
}
// Get the colors of the current Office theme.
const bodyBackgroundColor = Office.context.officeTheme.bodyBackgroundColor;
const bodyForegroundColor = Office.context.officeTheme.bodyForegroundColor;
const controlBackgroundColor = Office.context.officeTheme.controlBackgroundColor;
const controlForegroundColor = Office.context.officeTheme.controlForegroundColor;
// Apply theme colors to a CSS class.
$("body").css("background-color", bodyBackgroundColor);
if (Office.context.officeTheme.isDarkTheme) {
$("h1").css("color", controlForegroundColor);
}
}
partitionKey
Получает ключ раздела для локального хранилища. Надстройки должны использовать этот ключ секции как часть ключа хранилища для безопасного хранения данных. Ключ раздела находится undefined в средах без секционирования, таких как элементы управления браузера для Windows-приложений.
partitionKey: string;
Значение свойства
string
Комментарии
Дополнительные сведения см. в статье "Сохранение состояния и параметров надстроек ".
Примеры
// Store the value "Hello" in local storage with the key "myKey1".
setInLocalStorage("myKey1", "Hello");
// ...
// Retrieve the value stored in local storage under the key "myKey1".
const message = getFromLocalStorage("myKey1");
console.log(message);
// ...
function setInLocalStorage(key: string, value: string) {
const myPartitionKey = Office.context.partitionKey;
// Check if local storage is partitioned.
// If so, use the partition to ensure the data is only accessible by your add-in.
if (myPartitionKey) {
localStorage.setItem(myPartitionKey + key, value);
} else {
localStorage.setItem(key, value);
}
}
function getFromLocalStorage(key: string) {
const myPartitionKey = Office.context.partitionKey;
// Check if local storage is partitioned.
if (myPartitionKey) {
return localStorage.getItem(myPartitionKey + key);
} else {
return localStorage.getItem(key);
}
}
platform
Предоставляет платформу, на которой работает надстройка.
platform: PlatformType;
Значение свойства
Комментарии
Важно!
В Outlook это свойство доступно с набора требований к почтовому ящику 1.5. Вы также можете использовать свойство,
Office.context.diagnosticsчтобы запустить платформу, начиная с набора требований 1.5. Для всех наборов требований к почтовым ящикам можно использовать свойство Office.context.mailbox.диагностика, чтобы получить аналогичную информацию.В Outlook возвращается,
OfficeOnlineесли надстройка работает в Outlook в Интернете или в новом Outlook для Windows.
Примеры
// Request permission from a user to access their devices from Office on the web.
if (Office.context.platform === Office.PlatformType.OfficeOnline) {
const deviceCapabilities = [
Office.DevicePermissionType.camera,
Office.DevicePermissionType.microphone
];
Office.devicePermission
.requestPermissions(deviceCapabilities)
.then((isGranted) => {
if (isGranted) {
// Do something with device capabilities.
}
})
.catch((error) => {
console.log("Permission denied.");
console.error(error);
});
}
requirements
Метод определения наборов требований, поддерживаемых в текущем приложении и платформе Office.
requirements: RequirementSetSupport;
Значение свойства
Примеры
// To use the setCellProperties API, check if ExcelApi 1.9 is supported.
if (Office.context.requirements.isSetSupported("ExcelApi", "1.9")) {
const cellProperties: Excel.SettableCellProperties[][] =
colors2D.map(row =>
row.map(color =>
({
format: {
fill: {
color: color
}
}
})
)
);
sheet.getRangeByIndexes(1, 1, originalSize, originalSize).setCellProperties(cellProperties);
}
...
roamingSettings
Получает объект, представляющий настраиваемые параметры или состояние надстройки почты, сохраненное в почтовом ящике пользователя.
Этот RoamingSettings объект позволяет хранить данные надстройки почты, хранящейся в почтовом ящике пользователя, и получать к ним доступ, поэтому она доступна надстройке при ее запуске из любого клиентского приложения, используемого для доступа к этому почтовому ящику.
roamingSettings: Office.RoamingSettings;
Значение свойства
Комментарии
Минимальный уровень разрешений: restricted
Применимый режим Outlook: Compose или чтение
Примеры
// Get the current value of the 'myKey' setting.
const value = Office.context.roamingSettings.get('myKey');
// Update the value of the 'myKey' setting.
Office.context.roamingSettings.set('myKey', 'Hello World!');
// Persist the change.
Office.context.roamingSettings.saveAsync();
sensitivityLabelsCatalog
Получает объект для проверки состояния каталога меток конфиденциальности в Outlook и получения всех доступных меток конфиденциальности, если каталог включен.
sensitivityLabelsCatalog: Office.SensitivityLabelsCatalog;
Значение свойства
Комментарии
Минимальный уровень разрешений: элемент для чтения и записи
Применимый режим Outlook: Compose
Примеры
// Check if the catalog of sensitivity labels is enabled on the current mailbox.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
// If the catalog is enabled, get all available sensitivity labels.
if (asyncResult.status === Office.AsyncResultStatus.Succeeded && asyncResult.value === true) {
Office.context.sensitivityLabelsCatalog.getAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const catalog = asyncResult.value;
console.log("Sensitivity Labels Catalog:");
console.log(JSON.stringify(catalog));
} else {
console.log("Action failed with error: " + asyncResult.error.message);
}
});
} else {
console.log("Action failed with error: " + asyncResult.error.message);
}
});
touchEnabled
Определяет, поддерживает ли платформа и устройство сенсорное взаимодействие. True, если надстройка работает на сенсорном устройстве, например iPad; в противном случае false.
touchEnabled: boolean;
Значение свойства
boolean
Комментарии
Приложения: Excel, PowerPoint, Word
touchEnabled поддерживается только в Office на iPad.
С помощью свойства touchEnabled можно определить, выполняется ли надстройка на сенсорном устройстве, и при необходимости настроить типы элементов управления, а также размер и интервал между элементами пользовательского интерфейса надстройки для поддержки взаимодействия с сенсорным экраном.
Примеры
// Check if the add-in is running on an iPad.
const allowCommerce = Office.context.commerceAllowed;
const isTouchEnabled = Office.context.touchEnabled;
if (!allowCommerce && isTouchEnabled) {
// Add-in is running on an iPad.
// Do something.
}
ui
Предоставляет объекты и методы, которые можно использовать для создания компонентов пользовательского интерфейса, например диалоговых окон, и управления ими.
ui: UI;
Значение свойства
Примеры
// Open a dialog and register an event handler.
Office.context.ui.displayDialogAsync(
"https://www.contoso.com/myDialog.html",
{ height: 30, width: 20 },
(asyncResult) => {
const dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
dialog.close();
processMessage(arg);
});
}
);
urls
Получает объект для получения URL-адресов среды выполнения надстройки.
urls: Urls;
Значение свойства
Комментарии
Приложения: Outlook в Интернете и Windows (новые и классические клиенты)
Минимальный уровень разрешений: restricted
Применимый режим Outlook: Compose или чтение
Важно!
В Outlook в Интернете и новом Outlook для Windows этот API не поддерживается в надстройках, реализующих область задач. На этих клиентах API поддерживается только в надстройках, реализующих активацию на основе событий или встроенные отчеты о спаме.
В классической версии Outlook для Windows этот API поддерживается в надстройках, реализующих область задач, активацию на основе событий или встроенные отчеты о спаме.
Примеры
// Get the value of the first parameter of the JavaScript runtime URL.
// For example, if the URL is https://wwww.contoso.com/training?key1=value1&key2=value2,
// the following function logs "First parameter value: value1" to the console.
const url = Office.context.urls.javascriptRuntimeUrl;
const regex = /=([^&]+)/;
console.log(`First parameter value: ${url.match(regex)[1]}`);