Office Add-ins platform overview
Office Add-ins can do almost anything a webpage can do inside a browser. Use the Office Add-ins platform to:
Add new functionality to Office clients - Bring external data into Office, automate Office documents, expose third-party functionality in Office clients, and more. For example, use Microsoft Graph API to connect to data that drives productivity.
Create new rich, interactive objects that can be embedded in Office documents - Embed maps, charts, and interactive visualizations that users can add to their own Excel spreadsheets and PowerPoint presentations.
How are Office Add-ins different from COM and VSTO add-ins?
Office Add-ins provide the following advantages over add-ins built using VBA, COM, or VSTO:
Cross-platform support. Office Add-ins run in Office on the web, Windows, Mac, and iPad.
Centralized deployment and distribution. Admins can deploy Office Add-ins centrally across an organization.
Easy access via AppSource. You can make your solution available to a broad audience by submitting it to AppSource.
Based on standard web technology. You can use any library you like to build Office Add-ins.
Components of an Office Add-in
An Office Add-in includes two basic components: an XML manifest file, and your own web application. The manifest defines various settings, including how your add-in integrates with Office clients. Your web application needs to be hosted on a web server, or web hosting service, such as Microsoft Azure.
Figure 1. Add-in manifest (XML) + webpage (HTML, JS) = an Office Add-in
The manifest is an XML file that specifies settings and capabilities of the add-in, such as:
The add-in's display name, description, ID, version, and default locale.
How the add-in integrates with Office.
The permission level and data access requirements for the add-in.
Figure 2. Components of a Hello World Office Add-in
Extending and interacting with Office clients
Office Add-ins can do the following within an Office host application:
Extend functionality (any Office application)
Create new objects (Excel or PowerPoint)
Extend Office functionality
You can add new functionality to Office applications via the following:
Custom ribbon buttons and menu commands (collectively called “add-in commands”)
Insertable task panes
Custom UI and task panes are specified in the add-in manifest.
Custom buttons and menu commands
Figure 3. Add-in commands in the ribbon
You can use task panes in addition to add-in commands to enable users to interact with your solution. Clients that do not support add-in commands (Office 2013 and Office on iPad) run your add-in as a task pane. Users launch task pane add-ins via the My Add-ins button on the Insert tab.
Figure 4. Task pane
Extend Outlook functionality
Outlook add-ins can extend the Office ribbon and also display contextually next to an Outlook item when you're viewing or composing it. They can work with an email message, meeting request, meeting response, meeting cancellation, or appointment when a user is viewing a received item or replying or creating a new item.
Outlook add-ins can access contextual information from the item, such as an address or tracking ID, and then use that data to access additional information on the server and from web services to create compelling user experiences. In most cases, an Outlook add-in runs without modification in the Outlook host application to provide a seamless experience on the desktop, web, and tablet and mobile devices.
For an overview of Outlook add-ins, see Outlook add-ins overview.
Create new objects in Office documents
You can embed web-based objects called content add-ins within Excel and PowerPoint documents. With content add-ins, you can integrate rich, web-based data visualizations, media (such as a YouTube video player or a picture gallery), and other external content.
Figure 5. Content add-in
To build your first Office Add-in in less than 5 minutes, try out the quick start for Excel, Outlook, Word, OneNote, PowerPoint, or Project. You can start building add-ins right away using Visual Studio or any other editor.