Office.Context interface
Represents the runtime environment of the add-in and provides access to key objects of the API. The current context exists as a property of Office. It is accessed using Office.context
.
Remarks
Applications: Excel, Outlook, PowerPoint, Project, Word
Properties
auth | Provides information and access to the signed-in user. |
commerce |
True, if the current platform allows the add-in to display a UI for selling or upgrading; otherwise returns False. |
content |
Gets the locale (language) specified by the user for editing the document or item. |
diagnostics | Gets information about the environment in which the add-in is running. |
display |
Gets the locale (language) specified by the user for the UI of the Office application. |
document | Gets an object that represents the document the content or task pane add-in is interacting with. |
host | Contains the Office application in which the add-in is running. |
license | Gets the license information for the user's Office installation. |
mailbox | Provides access to the Microsoft Outlook add-in object model. |
office |
Provides access to the properties for Office theme colors. |
platform | Provides the platform on which the add-in is running. |
requirements | Provides a method for determining what requirement sets are supported on the current Office application and platform. |
roaming |
Gets an object that represents the custom settings or state of a mail add-in saved to a user's mailbox. The |
sensitivity |
Gets the object to check the status of the catalog of sensitivity labels in Outlook and retrieve all available sensitivity labels if the catalog is enabled. |
touch |
Specifies whether the platform and device allows touch interaction. True if the add-in is running on a touch device, such as an iPad; false otherwise. |
ui | Provides objects and methods that you can use to create and manipulate UI components, such as dialog boxes. |
Property Details
auth
Note
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
Provides information and access to the signed-in user.
auth: Auth;
Property Value
commerceAllowed
True, if the current platform allows the add-in to display a UI for selling or upgrading; otherwise returns False.
commerceAllowed: boolean;
Property Value
boolean
Remarks
Applications: Excel, Word
commerceAllowed
is only supported in Office on iPad.
The iOS App Store doesn't support apps with add-ins that provide links to additional payment systems. However, Office Add-ins running in Office on the Windows desktop or in the browser do allow such links. If you want the UI of your add-in to provide a link to an external payment system on platforms other than iOS, you can use the commerceAllowed property to control when that link is displayed.
contentLanguage
Gets the locale (language) specified by the user for editing the document or item.
contentLanguage: string;
Property Value
string
Remarks
The contentLanguage
value reflects the Editing Language setting specified with File > Options > Language in the Office application.
Support details
For more information about Office application and server requirements, see Requirements for running Office Add-ins.
Supported applications, by platform
Office on Windows | Office in web browser | Office on iPad | Outlook on mobile devices | Office on Mac | |
---|---|---|---|---|---|
Excel | Supported | Supported | Supported | ||
Outlook | Supported | Supported | Supported | Supported | |
PowerPoint | Supported | Supported | Supported | ||
Project | Supported | ||||
Word | Supported | Supported | Supported |
Examples
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
Gets information about the environment in which the add-in is running.
diagnostics: ContextInformation;
Property Value
Remarks
Important: In Outlook, this property is available from Mailbox requirement set 1.5. For all Mailbox requirement sets, you can use the Office.context.mailbox.diagnostics property to get similar information.
Examples
const contextInfo = Office.context.diagnostics;
console.log("Office application: " + contextInfo.host);
console.log("Office version: " + contextInfo.version);
console.log("Platform: " + contextInfo.platform);
displayLanguage
Gets the locale (language) specified by the user for the UI of the Office application.
displayLanguage: string;
Property Value
string
Remarks
The returned value is a string in the RFC 1766 Language tag format, such as en-US.
The displayLanguage
value reflects the current Display Language setting specified with File > Options > Language in the Office application.
When using in Outlook, the applicable modes are Compose or Read.
Support details
For more information about Office application and server requirements, see Requirements for running Office Add-ins.
Supported applications, by platform
Office on Windows | Office in web browser | Office on iPad | Outlook on mobile devices | Office on Mac | |
---|---|---|---|---|---|
Excel | Supported | Supported | Supported | Supported | |
Outlook | Supported | Supported | Supported | Supported | |
PowerPoint | Supported | Supported | Supported | Supported | |
Project | Supported | Supported | |||
Word | Supported | Supported | Supported |
Examples
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
Gets an object that represents the document the content or task pane add-in is interacting with.
document: Office.Document;
Property Value
Examples
// 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
Contains the Office application in which the add-in is running.
host: HostType;
Property Value
Remarks
Important: In Outlook, this property is available from Mailbox requirement set 1.5. You can also use the Office.context.diagnostics
property to get the application starting with requirement set 1.5. For all Mailbox requirement sets, you can use the Office.context.mailbox.diagnostics property to get similar information.
license
Gets the license information for the user's Office installation.
license: string;
Property Value
string
mailbox
Provides access to the Microsoft Outlook add-in object model.
mailbox: Office.Mailbox;
Property Value
Remarks
Minimum permission level: restricted
Applicable Outlook mode: Compose or Read
Key properties:
diagnostics
: Provides diagnostic information to an Outlook add-in.item
: Provides methods and properties for accessing a message or appointment in an Outlook add-in.userProfile
: Provides information about the user in an Outlook add-in.
Examples
// The following line of code access the item object of the JavaScript API for Office.
const item = Office.context.mailbox.item;
officeTheme
Provides access to the properties for Office theme colors.
officeTheme: OfficeTheme;
Property Value
Examples
function applyOfficeTheme(){
// Get office theme colors.
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 body background color to a CSS class.
$('.body').css('background-color', bodyBackgroundColor);
}
platform
Provides the platform on which the add-in is running.
platform: PlatformType;
Property Value
Remarks
Important: In Outlook, this property is available from Mailbox requirement set 1.5. You can also use the Office.context.diagnostics
property to get the platform starting with requirement set 1.5. For all Mailbox requirement sets, you can use the Office.context.mailbox.diagnostics property to get similar information.
requirements
Provides a method for determining what requirement sets are supported on the current Office application and platform.
requirements: RequirementSetSupport;
Property Value
roamingSettings
Gets an object that represents the custom settings or state of a mail add-in saved to a user's mailbox.
The RoamingSettings
object lets you store and access data for a mail add-in that is stored in a user's mailbox, so it's available to that add-in when it is running from any client application used to access that mailbox.
roamingSettings: Office.RoamingSettings;
Property Value
Remarks
Minimum permission level: restricted
Applicable Outlook mode: Compose or Read
Examples
// 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
Gets the object to check the status of the catalog of sensitivity labels in Outlook and retrieve all available sensitivity labels if the catalog is enabled.
sensitivityLabelsCatalog: Office.SensitivityLabelsCatalog;
Property Value
Remarks
Minimum permission level: read/write item
Applicable Outlook mode: Compose
Examples
// 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
Specifies whether the platform and device allows touch interaction. True if the add-in is running on a touch device, such as an iPad; false otherwise.
touchEnabled: boolean;
Property Value
boolean
Remarks
Applications: Excel, PowerPoint, Word
touchEnabled
is only supported in Office on iPad.
Use the touchEnabled property to determine when your add-in is running on a touch device and if necessary, adjust the kind of controls, and size and spacing of elements in your add-in's UI to accommodate touch interactions.
ui
Provides objects and methods that you can use to create and manipulate UI components, such as dialog boxes.
ui: UI;
Property Value
Feedback
Submit and view feedback for