Create a workbook table of contents
This sample shows how to create a table of contents for the workbook. Each entry in the table of contents is a hyperlink to one of the worksheets in the workbook.
Setup: Sample Excel file
This workbook contains the data, objects, and formatting expected by the script.
Sample code: Create a workbook table of contents
Add the following script to the sample workbook and try the sample yourself!
function main(workbook: ExcelScript.Workbook) {
// Insert a new worksheet at the beginning of the workbook.
let tocSheet = workbook.addWorksheet();
tocSheet.setPosition(0);
tocSheet.setName("Table of Contents");
// Give the worksheet a title in the sheet.
tocSheet.getRange("A1").setValue("Table of Contents");
tocSheet.getRange("A1").getFormat().getFont().setBold(true);
// Create the table of contents headers.
let tocRange = tocSheet.getRange("A2:B2")
tocRange.setValues([["#", "Name"]]);
// Get the range for the table of contents entries.
let worksheets = workbook.getWorksheets();
tocRange = tocRange.getResizedRange(worksheets.length, 0);
// Loop through all worksheets in the workbook, except the first one.
for (let i = 1; i < worksheets.length; i++) {
// Create a row for each worksheet with its index and linked name.
tocRange.getCell(i, 0).setValue(i);
tocRange.getCell(i, 1).setHyperlink({
textToDisplay: worksheets[i].getName(),
documentReference: `'${worksheets[i].getName()}'!A1`
});
};
// Activate the table of contents worksheet.
tocSheet.activate();
}
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Office Scripts