Object reference
Spreadsheet
A Spreadsheet is the whole Google Sheets file. Use SpreadsheetApp.getActiveSpreadsheet() or openById() to get it, then call getSheetByName() or getActiveSheet().
SpreadsheetApp.SpreadsheetStart here
Get this object first
In a script bound to a Google Sheet, call SpreadsheetApp.getActiveSpreadsheet() to get the open file. In a standalone script, pass the file ID from the URL to SpreadsheetApp.openById(id).
function logSpreadsheetName() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
Logger.log(spreadsheet.getName());
} Then use it
Common actions
Choose an action, then open its example only when you need the code.
Get a tab by name with getSheetByName
Looks up a tab by its exact name and checks for null before calling getRange(). Without the check, a missing tab causes TypeError: Cannot read properties of null.
SpreadsheetApp.SpreadsheetSpreadsheetApp.SheetSpreadsheetApp.RangeShow example code
function logNamedSheetFirstCell() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName('Customers');
if (!sheet) {
throw new Error('No tab named Customers found in ' + spreadsheet.getName());
}
Logger.log(sheet.getRange('A1').getDisplayValue());
} Get the active tab with getActiveSheet
Gets the tab currently open in the spreadsheet and logs its name and last used row.
SpreadsheetApp.SpreadsheetSpreadsheetApp.SheetShow example code
function logActiveSheetSummary() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
Logger.log(sheet.getName() + ' last used row: ' + sheet.getLastRow());
} List every tab name in the file
Logs the tab names from getSheets(), in order.
SpreadsheetApp.SpreadsheetSpreadsheetApp.SheetShow example code
function listSheetNames() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const names = spreadsheet.getSheets().map((sheet) => sheet.getName());
Logger.log(names.join(', '));
} Technical reference
Exact names and signatures
Open method details when you need them.
At a glance
- Service
- SpreadsheetApp
- Reference symbol
SpreadsheetApp.Spreadsheet- Object
Spreadsheet- Runtime
- From signature data
Methods and signatures
Browse 125 methods
addDeveloperMetadata
- addDeveloperMetadata(key: string): SpreadsheetApp.Spreadsheet
- addDeveloperMetadata(key: string, visibility: SpreadsheetApp.DeveloperMetadataVisibility): SpreadsheetApp.Spreadsheet
- addDeveloperMetadata(key: string, value: string): SpreadsheetApp.Spreadsheet
- addDeveloperMetadata(key: string, value: string, visibility: SpreadsheetApp.DeveloperMetadataVisibility): SpreadsheetApp.Spreadsheet
addEditor
- addEditor(emailAddress: string): SpreadsheetApp.Spreadsheet
- addEditor(user: User): SpreadsheetApp.Spreadsheet
addEditors
- addEditors(emailAddresses: string[]): SpreadsheetApp.Spreadsheet
addMenu
- addMenu(name: string, subMenus: unknown[]): void
addViewer
- addViewer(emailAddress: string): SpreadsheetApp.Spreadsheet
- addViewer(user: User): SpreadsheetApp.Spreadsheet
addViewers
- addViewers(emailAddresses: string[]): SpreadsheetApp.Spreadsheet
appendRow
- appendRow(rowContents: unknown[]): SpreadsheetApp.Sheet
autoResizeColumn
- autoResizeColumn(columnPosition: number): SpreadsheetApp.Sheet
copy
- copy(name: string): SpreadsheetApp.Spreadsheet
createDeveloperMetadataFinder
- createDeveloperMetadataFinder(): SpreadsheetApp.DeveloperMetadataFinder
createTextFinder
- createTextFinder(findText: string): SpreadsheetApp.TextFinder
deleteActiveSheet
- deleteActiveSheet(): SpreadsheetApp.Sheet
deleteColumn
- deleteColumn(columnPosition: number): SpreadsheetApp.Sheet
deleteColumns
- deleteColumns(columnPosition: number, howMany: number): void
deleteRow
- deleteRow(rowPosition: number): SpreadsheetApp.Sheet
deleteRows
- deleteRows(rowPosition: number, howMany: number): void
deleteSheet
- deleteSheet(sheet: SpreadsheetApp.Sheet): void
duplicateActiveSheet
- duplicateActiveSheet(): SpreadsheetApp.Sheet
getActiveCell
- getActiveCell(): SpreadsheetApp.Range
getActiveRange
- getActiveRange(): SpreadsheetApp.Range
getActiveRangeList
- getActiveRangeList(): SpreadsheetApp.RangeList | null
getActiveSheet
- getActiveSheet(): SpreadsheetApp.Sheet
getAs
- getAs(contentType: string): Blob
getBandings
- getBandings(): SpreadsheetApp.Banding[]
getBlob
- getBlob(): Blob
getColumnWidth
- getColumnWidth(columnPosition: number): number
getCurrentCell
- getCurrentCell(): SpreadsheetApp.Range | null
getDataRange
- getDataRange(): SpreadsheetApp.Range
getDataSourceFormulas
- getDataSourceFormulas(): SpreadsheetApp.DataSourceFormula[]
getDataSourcePivotTables
- getDataSourcePivotTables(): SpreadsheetApp.DataSourcePivotTable[]
getDataSourceRefreshSchedules
- getDataSourceRefreshSchedules(): SpreadsheetApp.DataSourceRefreshSchedule[]
getDataSourceSheets
- getDataSourceSheets(): SpreadsheetApp.DataSourceSheet[]
getDataSourceTables
- getDataSourceTables(): SpreadsheetApp.DataSourceTable[]
getDataSources
- getDataSources(): SpreadsheetApp.DataSource[]
getDeveloperMetadata
- getDeveloperMetadata(): SpreadsheetApp.DeveloperMetadata[]
getEditors
- getEditors(): User[]
getFormUrl
- getFormUrl(): string
getFrozenColumns
- getFrozenColumns(): number
getFrozenRows
- getFrozenRows(): number
getId
- getId(): string
getImages
- getImages(): SpreadsheetApp.OverGridImage[]
getIterativeCalculationConvergenceThreshold
- getIterativeCalculationConvergenceThreshold(): number
getLastColumn
- getLastColumn(): number
getLastRow
- getLastRow(): number
getMaxIterativeCalculationCycles
- getMaxIterativeCalculationCycles(): number
getName
- getName(): string
getNamedRanges
- getNamedRanges(): SpreadsheetApp.NamedRange[]
getNumSheets
- getNumSheets(): number
getOwner
- getOwner(): User | null
getPredefinedSpreadsheetThemes
- getPredefinedSpreadsheetThemes(): SpreadsheetApp.SpreadsheetTheme[]
getProtections
- getProtections(type: SpreadsheetApp.ProtectionType): SpreadsheetApp.Protection[]
getRange
- getRange(a1Notation: string): SpreadsheetApp.Range
getRangeByName
- getRangeByName(name: string): SpreadsheetApp.Range | null
getRangeList
- getRangeList(a1Notations: string[]): SpreadsheetApp.RangeList
getRecalculationInterval
- getRecalculationInterval(): SpreadsheetApp.RecalculationInterval
getRowHeight
- getRowHeight(rowPosition: number): number
getSelection
- getSelection(): SpreadsheetApp.Selection
getSheetById
- getSheetById(id: number): SpreadsheetApp.Sheet | null
getSheetByName
- getSheetByName(name: string): SpreadsheetApp.Sheet | null
getSheetId
- getSheetId(): number
getSheetName
- getSheetName(): string
getSheetProtection
- getSheetProtection(): SpreadsheetApp.PageProtection
getSheetValues
- getSheetValues(startRow: number, startColumn: number, numRows: number, numColumns: number): unknown[][]
getSheets
- getSheets(): SpreadsheetApp.Sheet[]
getSpreadsheetLocale
- getSpreadsheetLocale(): string
getSpreadsheetTheme
- getSpreadsheetTheme(): SpreadsheetApp.SpreadsheetTheme | null
getSpreadsheetTimeZone
- getSpreadsheetTimeZone(): string
getUrl
- getUrl(): string
getViewers
- getViewers(): User[]
hideColumn
- hideColumn(column: SpreadsheetApp.Range): void
hideRow
- hideRow(row: SpreadsheetApp.Range): void
insertColumnAfter
- insertColumnAfter(afterPosition: number): SpreadsheetApp.Sheet
insertColumnBefore
- insertColumnBefore(beforePosition: number): SpreadsheetApp.Sheet
insertColumnsAfter
- insertColumnsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet
insertColumnsBefore
- insertColumnsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet
insertDataSourceSheet
- insertDataSourceSheet(spec: SpreadsheetApp.DataSourceSpec): SpreadsheetApp.DataSourceSheet
insertImage
- insertImage(blobSource: BlobSource, column: number, row: number): SpreadsheetApp.OverGridImage
- insertImage(blobSource: BlobSource, column: number, row: number, offsetX: number, offsetY: number): SpreadsheetApp.OverGridImage
- insertImage(url: string, column: number, row: number): SpreadsheetApp.OverGridImage
- insertImage(url: string, column: number, row: number, offsetX: number, offsetY: number): SpreadsheetApp.OverGridImage
insertRowAfter
- insertRowAfter(afterPosition: number): SpreadsheetApp.Sheet
insertRowBefore
- insertRowBefore(beforePosition: number): SpreadsheetApp.Sheet
insertRowsAfter
- insertRowsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet
insertRowsBefore
- insertRowsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet
insertSheet
- insertSheet(): SpreadsheetApp.Sheet
- insertSheet(sheetIndex: number): SpreadsheetApp.Sheet
- insertSheet(sheetIndex: number, options: { template?: SpreadsheetApp.Sheet }): SpreadsheetApp.Sheet
- insertSheet(options: { template?: SpreadsheetApp.Sheet }): SpreadsheetApp.Sheet
- insertSheet(sheetName: string): SpreadsheetApp.Sheet
- insertSheet(sheetName: string, sheetIndex: number): SpreadsheetApp.Sheet
- insertSheet(sheetName: string, sheetIndex: number, options: { template?: SpreadsheetApp.Sheet }): SpreadsheetApp.Sheet
- insertSheet(sheetName: string, options: { template?: SpreadsheetApp.Sheet }): SpreadsheetApp.Sheet
insertSheetWithDataSourceTable
- insertSheetWithDataSourceTable(spec: SpreadsheetApp.DataSourceSpec): SpreadsheetApp.Sheet
isAnonymousView
- isAnonymousView(): boolean
isAnonymousWrite
- isAnonymousWrite(): boolean
isColumnHiddenByUser
- isColumnHiddenByUser(columnPosition: number): boolean
isIterativeCalculationEnabled
- isIterativeCalculationEnabled(): boolean
isRowHiddenByFilter
- isRowHiddenByFilter(rowPosition: number): boolean
isRowHiddenByUser
- isRowHiddenByUser(rowPosition: number): boolean
moveActiveSheet
- moveActiveSheet(pos: number): void
moveChartToObjectSheet
- moveChartToObjectSheet(chart: SpreadsheetApp.EmbeddedChart): SpreadsheetApp.Sheet
refreshAllDataSources
- refreshAllDataSources(): void
removeEditor
- removeEditor(emailAddress: string): SpreadsheetApp.Spreadsheet
- removeEditor(user: User): SpreadsheetApp.Spreadsheet
removeMenu
- removeMenu(name: string): void
removeNamedRange
- removeNamedRange(name: string): void
removeViewer
- removeViewer(emailAddress: string): SpreadsheetApp.Spreadsheet
- removeViewer(user: User): SpreadsheetApp.Spreadsheet
rename
- rename(name: string): void
renameActiveSheet
- renameActiveSheet(newName: string): void
resetSpreadsheetTheme
- resetSpreadsheetTheme(): SpreadsheetApp.SpreadsheetTheme
setActiveRange
- setActiveRange(range: SpreadsheetApp.Range): SpreadsheetApp.Range
setActiveRangeList
- setActiveRangeList(rangeList: SpreadsheetApp.RangeList): SpreadsheetApp.RangeList
setActiveSelection
- setActiveSelection(range: SpreadsheetApp.Range): SpreadsheetApp.Range
- setActiveSelection(a1Notation: string): SpreadsheetApp.Range
setActiveSheet
- setActiveSheet(sheet: SpreadsheetApp.Sheet): SpreadsheetApp.Sheet
- setActiveSheet(sheet: SpreadsheetApp.Sheet, restoreSelection: boolean): SpreadsheetApp.Sheet
setAnonymousAccess
- setAnonymousAccess(anonymousReadAllowed: boolean, anonymousWriteAllowed: boolean): void
setColumnWidth
- setColumnWidth(columnPosition: number, width: number): SpreadsheetApp.Sheet
setCurrentCell
- setCurrentCell(cell: SpreadsheetApp.Range): SpreadsheetApp.Range
setFrozenColumns
- setFrozenColumns(columns: number): void
setFrozenRows
- setFrozenRows(rows: number): void
setIterativeCalculationConvergenceThreshold
- setIterativeCalculationConvergenceThreshold(minThreshold: number): SpreadsheetApp.Spreadsheet
setIterativeCalculationEnabled
- setIterativeCalculationEnabled(isEnabled: boolean): SpreadsheetApp.Spreadsheet
setMaxIterativeCalculationCycles
- setMaxIterativeCalculationCycles(maxIterations: number): SpreadsheetApp.Spreadsheet
setNamedRange
- setNamedRange(name: string, range: SpreadsheetApp.Range): void
setRecalculationInterval
- setRecalculationInterval(recalculationInterval: SpreadsheetApp.RecalculationInterval): SpreadsheetApp.Spreadsheet
setRowHeight
- setRowHeight(rowPosition: number, height: number): SpreadsheetApp.Sheet
setSheetProtection
- setSheetProtection(permissions: SpreadsheetApp.PageProtection): void
setSpreadsheetLocale
- setSpreadsheetLocale(locale: string): void
setSpreadsheetTheme
- setSpreadsheetTheme(theme: SpreadsheetApp.SpreadsheetTheme): SpreadsheetApp.SpreadsheetTheme
setSpreadsheetTimeZone
- setSpreadsheetTimeZone(timeZone: string): void
show
- show(userInterface: unknown): void
sort
- sort(columnPosition: number): SpreadsheetApp.Sheet
- sort(columnPosition: number, ascending: boolean): SpreadsheetApp.Sheet
toast
- toast(message: string): void
- toast(message: string, title: string): void
- toast(message: string, title: string, timeoutSeconds: number): void
unhideColumn
- unhideColumn(column: SpreadsheetApp.Range): void
unhideRow
- unhideRow(row: SpreadsheetApp.Range): void
updateMenu
- updateMenu(name: string, subMenus: unknown[]): void
waitForAllDataExecutionsCompletion
- waitForAllDataExecutionsCompletion(timeoutInSeconds: number): void
Need the whole workflow?
Return to a task guide
Task guides cover setup, permissions, expected results, and troubleshooting as well as object methods.
Browse Google Sheets tasks