This article describes how to use the Excel JavaScript API to build add-ins for Excel 2016 or later. It introduces core concepts that are fundamental to using the API and provides guidance for performing specific tasks such as reading or writing to a large range, updating all cells in range, and more.
Important
See Using the application-specific API model to learn about the asynchronous nature of the Excel APIs and how they work with the workbook.
- Stay a step ahead with the latest AI-powered apps: Create inspiring documents with smart assistance features in Word, Excel & PowerPoint Save up to 500,000 photos. & files with 1 TB of OneDrive cloud storage (.assumes 2MB file size) Enjoy an.
- Office 365 services, such as OneNote, Outlook, Excel, OneDrive, Microsoft Teams, Planner, and SharePoint, are now exposed in Microsoft Graph. Microsoft Graph is a unified API endpoint for accessing data across Microsoft 365, which includes Office 365, Enterprise Mobility, and Security and Windows services.
- Microsoft Excel is one of the most versatile and useful programs in the Office suite. It doesn’t matter if you need Excel templates for budgeting the next fiscal year, tracking your business inventory, planning out meals, or creating a fantasy football draft sheet, there are plenty of Microsoft Excel templates for you.
- Learn all about writing scripts with the Code Editor in Record, edit, and create Office Scripts in Excel on the web. Requirements An active Microsoft 365 subscription account with a commercial or educational Microsoft 365 license that has access to the Microsoft 365 Office desktop apps.
Office 365 Excel Version
Office.js APIs for Excel
Apr 15, 2021 Office 365 provides the ability to integrate third-party applications into SharePoint Online sites, Skype for Business, Office applications included in Microsoft 365 Apps for enterprise (such as Word, Excel, PowerPoint, and Outlook), and Outlook Web App.
An Excel add-in interacts with objects in Excel by using the Office JavaScript API, which includes two JavaScript object models:
Excel JavaScript API: Introduced with Office 2016, the Excel JavaScript API provides strongly-typed objects that you can use to access worksheets, ranges, tables, charts, and more.
Common APIs: Introduced with Office 2013, the Common API can be used to access features such as UI, dialogs, and client settings that are common across multiple types of Office applications.
While you'll likely use the Excel JavaScript API to develop the majority of functionality in add-ins that target Excel 2016 or later, you'll also use objects in the Common API. For example:
- Context: The
Context
object represents the runtime environment of the add-in and provides access to key objects of the API. It consists of workbook configuration details such ascontentLanguage
andofficeTheme
and also provides information about the add-in's runtime environment such ashost
andplatform
. Additionally, it provides therequirements.isSetSupported()
method, which you can use to check whether the specified requirement set is supported by the Excel application where the add-in is running. - Document: The
Document
object provides thegetFileAsync()
method, which you can use to download the Excel file where the add-in is running.
The following image illustrates when you might use the Excel JavaScript API or the Common APIs.
Excel-specific object model
To understand the Excel APIs, you must understand how the components of a workbook are related to one another.
- A Workbook contains one or more Worksheets.
- A Worksheet contains collections of those data objects that are present in the individual sheet, and gives access to cells through Range objects.
- A Range represents a group of contiguous cells.
- Ranges are used to create and place Tables, Charts, Shapes, and other data visualization or organization objects.
- Workbooks contain collections of some of those data objects (such as Tables) for the entire Workbook.
Note
The Excel JavaScript API doesn't have a 'Cell' object or class. Instead, the Excel JavaScript API defines all Excel cells as Range
objects. An individual cell in the Excel UI translates to a Range
object with one cell in the Excel JavaScript API. A single Range
object can also contain multiple contiguous cells. See Work with cells using the Excel JavaScript API to learn more.
Ranges
A range is a group of contiguous cells in the workbook. Add-ins typically use A1-style notation (e.g. B3 for the single cell in column B and row 3 or C2:F4 for the cells from columns C through F and rows 2 through 4) to define ranges.
Ranges have three core properties: values
, formulas
, and format
. These properties get or set the cell values, formulas to be evaluated, and the visual formatting of the cells.
Range sample
The following sample shows how to create sales records. This function uses Range
objects to set the values, formulas, and formats.
This sample creates the following data in the current worksheet:
For more information, see Set and get range values, text, or formulas using the Excel JavaScript API.
Charts, tables, and other data objects
The Excel JavaScript APIs can create and manipulate the data structures and visualizations within Excel. Tables and charts are two of the more commonly used objects, but the APIs support PivotTables, shapes, images, and more.
Creating a table
Create tables by using data-filled ranges. Formatting and table controls (such as filters) are automatically applied to the range.
The following sample creates a table using the ranges from the previous sample.
Using this sample code on the worksheet with the previous data creates the following table:
Excel Online
For more information, see Work with tables using the Excel JavaScript API.
Creating a chart
Create charts to visualize the data in a range. The APIs support dozens of chart varieties, each of which can be customized to suit your needs.
Office 365 Excel Won't Open
The following sample creates a simple column chart for three items and places it 100 pixels below the top of the worksheet.
Running this sample on the worksheet with the previous table creates the following chart:
For more information, see Work with charts using the Excel JavaScript API.