Excel.WorksheetCollection class
Represents a collection of worksheet objects that are part of the workbook.
- Extends
Properties
context | The request context associated with the object. This connects the add-in's process to the Office host application's process. |
items | Gets the loaded child items in this collection. |
on |
Occurs when any worksheet in the workbook is activated. |
on |
Occurs when a new worksheet is added to the workbook. |
on |
Occurs when any worksheet in the workbook is calculated. |
on |
Occurs when any worksheet in the workbook is changed. |
on |
Occurs when one or more columns have been sorted. This happens as the result of a left-to-right sort operation. |
on |
Occurs when any worksheet in the workbook is deactivated. |
on |
Occurs when a worksheet is deleted from the workbook. |
on |
Occurs when any worksheet's filter is applied in the workbook. |
on |
Occurs when any worksheet in the workbook has format changed. |
on |
Occurs when the hidden state of one or more rows has changed on a specific worksheet. |
on |
Occurs when one or more rows have been sorted. This happens as the result of a top-to-bottom sort operation. |
on |
Occurs when the selection changes on any worksheet. |
on |
Occurs when left-clicked/tapped operation happens in the worksheet collection. This event will not be fired when clicking in the following cases: - The user drags the mouse for multi-selection. - The user selects a cell in the mode when cell arguments are selected for formula references. |
Methods
add(name) | Adds a new worksheet to the workbook. The worksheet will be added at the end of existing worksheets. If you wish to activate the newly added worksheet, call ".activate() on it. |
add |
Inserts the specified worksheets of a workbook into the current workbook. Note*: This API is currently only supported for Office on Windows and Mac. |
add |
Inserts the specified worksheets of a workbook into the current workbook. Note*: This API is currently only supported for Office on Windows and Mac. |
get |
Gets the currently active worksheet in the workbook. |
get |
Gets the number of worksheets in the collection. |
get |
Gets the first worksheet in the collection. |
get |
Gets a worksheet object using its Name or ID. |
get |
Gets a worksheet object using its Name or ID. If the worksheet does not exist, will return a null object. |
get |
Gets the last worksheet in the collection. |
load(options) | Queues up a command to load the specified properties of the object. You must call |
load(property |
Queues up a command to load the specified properties of the object. You must call |
load(property |
Queues up a command to load the specified properties of the object. You must call |
toJSON() | Overrides the JavaScript |
Property Details
context
The request context associated with the object. This connects the add-in's process to the Office host application's process.
context: RequestContext;
Property Value
items
Gets the loaded child items in this collection.
readonly items: Excel.Worksheet[];
Property Value
onActivated
Occurs when any worksheet in the workbook is activated.
readonly onActivated: OfficeExtension.EventHandlers<Excel.WorksheetActivatedEventArgs>;
Property Value
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/30-events/events-workbook-and-worksheet-collection.yaml
await Excel.run(async (context) => {
let sheets = context.workbook.worksheets;
sheets.onActivated.add(onActivate);
await context.sync();
console.log("A handler has been registered for the OnActivate event.");
});
onAdded
Occurs when a new worksheet is added to the workbook.
readonly onAdded: OfficeExtension.EventHandlers<Excel.WorksheetAddedEventArgs>;
Property Value
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/30-events/events-workbook-and-worksheet-collection.yaml
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets;
sheet.onAdded.add(onWorksheetAdd);
await context.sync();
console.log("A handler has been registered for the OnAdded event.");
});
onCalculated
Occurs when any worksheet in the workbook is calculated.
readonly onCalculated: OfficeExtension.EventHandlers<Excel.WorksheetCalculatedEventArgs>;
Property Value
onChanged
Occurs when any worksheet in the workbook is changed.
readonly onChanged: OfficeExtension.EventHandlers<Excel.WorksheetChangedEventArgs>;
Property Value
onColumnSorted
Occurs when one or more columns have been sorted. This happens as the result of a left-to-right sort operation.
readonly onColumnSorted: OfficeExtension.EventHandlers<Excel.WorksheetColumnSortedEventArgs>;
Property Value
onDeactivated
Occurs when any worksheet in the workbook is deactivated.
readonly onDeactivated: OfficeExtension.EventHandlers<Excel.WorksheetDeactivatedEventArgs>;
Property Value
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/30-events/events-workbook-and-worksheet-collection.yaml
await Excel.run(async (context) => {
let sheets = context.workbook.worksheets;
sheets.onDeactivated.add(onDeactivate);
await context.sync();
console.log("A handler has been registered for the OnDeactivate event.");
});
onDeleted
Occurs when a worksheet is deleted from the workbook.
readonly onDeleted: OfficeExtension.EventHandlers<Excel.WorksheetDeletedEventArgs>;
Property Value
onFiltered
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.
Occurs when any worksheet's filter is applied in the workbook.
[ API set: ExcelApi BETA (PREVIEW ONLY) ]
readonly onFiltered: OfficeExtension.EventHandlers<Excel.WorksheetFilteredEventArgs>;
Property Value
onFormatChanged
Occurs when any worksheet in the workbook has format changed.
readonly onFormatChanged: OfficeExtension.EventHandlers<Excel.WorksheetFormatChangedEventArgs>;
Property Value
onRowHiddenChanged
Occurs when the hidden state of one or more rows has changed on a specific worksheet.
readonly onRowHiddenChanged: OfficeExtension.EventHandlers<Excel.WorksheetRowHiddenChangedEventArgs>;
Property Value
onRowSorted
Occurs when one or more rows have been sorted. This happens as the result of a top-to-bottom sort operation.
readonly onRowSorted: OfficeExtension.EventHandlers<Excel.WorksheetRowSortedEventArgs>;
Property Value
onSelectionChanged
Occurs when the selection changes on any worksheet.
readonly onSelectionChanged: OfficeExtension.EventHandlers<Excel.WorksheetSelectionChangedEventArgs>;
Property Value
onSingleClicked
Occurs when left-clicked/tapped operation happens in the worksheet collection. This event will not be fired when clicking in the following cases: - The user drags the mouse for multi-selection. - The user selects a cell in the mode when cell arguments are selected for formula references.
readonly onSingleClicked: OfficeExtension.EventHandlers<Excel.WorksheetSingleClickedEventArgs>;
Property Value
Method Details
add(name)
Adds a new worksheet to the workbook. The worksheet will be added at the end of existing worksheets. If you wish to activate the newly added worksheet, call ".activate() on it.
add(name?: string): Excel.Worksheet;
Parameters
- name
-
string
Optional. The name of the worksheet to be added. If specified, name should be unqiue. If not specified, Excel determines the name of the new worksheet.
Returns
Examples
Excel.run(function (ctx) {
var wSheetName = 'Sample Name';
var worksheet = ctx.workbook.worksheets.add(wSheetName);
worksheet.load('name');
return ctx.sync().then(function() {
console.log(worksheet.name);
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
addFromBase64(base64File, sheetNamesToInsert, positionType, relativeTo)
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.
Inserts the specified worksheets of a workbook into the current workbook.
Note*: This API is currently only supported for Office on Windows and Mac.
[ API set: ExcelApiAddFromBase64String 1.1 ]
addFromBase64(base64File: string, sheetNamesToInsert?: string[], positionType?: Excel.WorksheetPositionType, relativeTo?: Worksheet | string): OfficeExtension.ClientResult<string[]>;
Parameters
- base64File
-
string
Required. The base64-encoded string representing the source workbook file.
- sheetNamesToInsert
-
string[]
Optional. The names of individual worksheets to insert. By default, all the worksheets from the source workbook are inserted.
- positionType
- Excel.WorksheetPositionType
Optional. Where in the current workbook the new worksheets will be inserted. See Excel.WorksheetPositionType for details. Default is "Start".
- relativeTo
-
Excel.Worksheet | string
Optional. The worksheet in the current workbook that is referenced for the positionType parameter. Default is null and, based on positionType, it will insert worksheets at the start or end of the current workbook.
Returns
OfficeExtension.ClientResult<string[]>
An array of ids corresponding to each newly inserted worksheet.
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/85-preview-apis/workbook-insert-external-worksheets.yaml
const myFile = <HTMLInputElement>document.getElementById("file");
const reader = new FileReader();
reader.onload = (event) => {
Excel.run((context) => {
// strip off the metadata before the base64-encoded string
const startIndex = reader.result.toString().indexOf("base64,");
const workbookContents = reader.result.toString().substr(startIndex + 7);
const sheets = context.workbook.worksheets;
sheets.addFromBase64(
workbookContents,
null, // get all the worksheets
Excel.WorksheetPositionType.end // insert them after the current workbook's worksheets
);
return context.sync();
});
};
// read in the file as a data URL so we can parse the base64-encoded string
reader.readAsDataURL(myFile.files[0]);
addFromBase64(base64File, sheetNamesToInsert, positionTypeString, relativeTo)
Inserts the specified worksheets of a workbook into the current workbook.
Note*: This API is currently only supported for Office on Windows and Mac.
[ API set: ExcelApiAddFromBase64String 1.1 ]
addFromBase64(base64File: string, sheetNamesToInsert?: string[], positionTypeString?: "None" | "Before" | "After" | "Beginning" | "End", relativeTo?: Worksheet | string): OfficeExtension.ClientResult<string[]>;
Parameters
- base64File
-
string
Required. The base64-encoded string representing the source workbook file.
- sheetNamesToInsert
-
string[]
Optional. The names of individual worksheets to insert. By default, all the worksheets from the source workbook are inserted.
- positionTypeString
-
"None" | "Before" | "After" | "Beginning" | "End"
Optional. Where in the current workbook the new worksheets will be inserted. See Excel.WorksheetPositionType for details. Default is "Start".
- relativeTo
-
Excel.Worksheet | string
Optional. The worksheet in the current workbook that is referenced for the positionType parameter. Default is null and, based on positionType, it will insert worksheets at the start or end of the current workbook.
Returns
OfficeExtension.ClientResult<string[]>
An array of ids corresponding to each newly inserted worksheet.
getActiveWorksheet()
Gets the currently active worksheet in the workbook.
getActiveWorksheet(): Excel.Worksheet;
Returns
Examples
Excel.run(function (ctx) {
var activeWorksheet = ctx.workbook.worksheets.getActiveWorksheet();
activeWorksheet.load('name');
return ctx.sync().then(function() {
console.log(activeWorksheet.name);
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
getCount(visibleOnly)
Gets the number of worksheets in the collection.
getCount(visibleOnly?: boolean): OfficeExtension.ClientResult<number>;
Parameters
- visibleOnly
-
boolean
Optional. If true, considers only visible worksheets, skipping over any hidden ones.
Returns
OfficeExtension.ClientResult<number>
getFirst(visibleOnly)
Gets the first worksheet in the collection.
getFirst(visibleOnly?: boolean): Excel.Worksheet;
Parameters
- visibleOnly
-
boolean
Optional. If true, considers only visible worksheets, skipping over any hidden ones.
Returns
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/54-worksheet/reference-worksheets-by-relative-position.yaml
await Excel.run(async (context) => {
const sheets = context.workbook.worksheets;
// We don't want to include the default worksheet that was created
// when the workbook was created, so our "firstSheet" will be the one
// after the literal first. Note chaining of navigation methods.
const firstSheet = sheets.getFirst().getNext();
const lastSheet = sheets.getLast();
const firstTaxRateRange = firstSheet.getRange("B2");
const lastTaxRateRange = lastSheet.getRange("B2");
firstSheet.load("name");
lastSheet.load("name");
firstTaxRateRange.load("text");
lastTaxRateRange.load("text");
await context.sync();
let firstYear = firstSheet.name.substr(5, 4);
let lastYear = lastSheet.name.substr(5, 4);
console.log(`Tax Rate change from ${firstYear} to ${lastYear}`, `Tax rate for ${firstYear}: ${firstTaxRateRange.text[0][0]}\nTax rate for ${lastYear}: ${lastTaxRateRange.text[0][0]}`)
await context.sync();
});
getItem(key)
Gets a worksheet object using its Name or ID.
getItem(key: string): Excel.Worksheet;
Parameters
- key
-
string
The Name or ID of the worksheet.
Returns
getItemOrNullObject(key)
Gets a worksheet object using its Name or ID. If the worksheet does not exist, will return a null object.
getItemOrNullObject(key: string): Excel.Worksheet;
Parameters
- key
-
string
The Name or ID of the worksheet.
Returns
getLast(visibleOnly)
Gets the last worksheet in the collection.
getLast(visibleOnly?: boolean): Excel.Worksheet;
Parameters
- visibleOnly
-
boolean
Optional. If true, considers only visible worksheets, skipping over any hidden ones.
Returns
Examples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/54-worksheet/reference-worksheets-by-relative-position.yaml
await Excel.run(async (context) => {
const sheets = context.workbook.worksheets;
// We don't want to include the default worksheet that was created
// when the workbook was created, so our "firstSheet" will be the one
// after the literal first. Note chaining of navigation methods.
const firstSheet = sheets.getFirst().getNext();
const lastSheet = sheets.getLast();
const firstTaxRateRange = firstSheet.getRange("B2");
const lastTaxRateRange = lastSheet.getRange("B2");
firstSheet.load("name");
lastSheet.load("name");
firstTaxRateRange.load("text");
lastTaxRateRange.load("text");
await context.sync();
let firstYear = firstSheet.name.substr(5, 4);
let lastYear = lastSheet.name.substr(5, 4);
console.log(`Tax Rate change from ${firstYear} to ${lastYear}`, `Tax rate for ${firstYear}: ${firstTaxRateRange.text[0][0]}\nTax rate for ${lastYear}: ${lastTaxRateRange.text[0][0]}`)
await context.sync();
});
load(options)
Queues up a command to load the specified properties of the object. You must call context.sync()
before reading the properties.
load(options?: Excel.Interfaces.WorksheetCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.WorksheetCollection;
Parameters
Provides options for which properties of the object to load.
Returns
load(propertyNames)
Queues up a command to load the specified properties of the object. You must call context.sync()
before reading the properties.
load(propertyNames?: string | string[]): Excel.WorksheetCollection;
Parameters
- propertyNames
-
string | string[]
A comma-delimited string or an array of strings that specify the properties to load.
Returns
Examples
Excel.run(function (ctx) {
var worksheets = ctx.workbook.worksheets;
worksheets.load('items');
return ctx.sync().then(function() {
for (var i = 0; i < worksheets.items.length; i++)
{
console.log(worksheets.items[i].name);
console.log(worksheets.items[i].index);
}
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
load(propertyNamesAndPaths)
Queues up a command to load the specified properties of the object. You must call context.sync()
before reading the properties.
load(propertyNamesAndPaths?: OfficeExtension.LoadOption): Excel.WorksheetCollection;
Parameters
- propertyNamesAndPaths
- OfficeExtension.LoadOption
propertyNamesAndPaths.select
is a comma-delimited string that specifies the properties to load, and propertyNamesAndPaths.expand
is a comma-delimited string that specifies the navigation properties to load.
Returns
toJSON()
Overrides the JavaScript toJSON()
method in order to provide more useful output when an API object is passed to JSON.stringify()
. (JSON.stringify
, in turn, calls the toJSON
method of the object that is passed to it.) Whereas the original Excel.WorksheetCollection
object is an API object, the toJSON
method returns a plain JavaScript object (typed as Excel.Interfaces.WorksheetCollectionData
) that contains an "items" array with shallow copies of any loaded properties from the collection's items.
toJSON(): Excel.Interfaces.WorksheetCollectionData;