Skip to content

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.Spreadsheet

Start 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).

Code.gs
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.Range
Show example code
Code.gs
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.Sheet
Show example code
Code.gs
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.Sheet
Show example code
Code.gs
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

From signature data Google source
  • 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

From signature data Google source
  • addEditor(emailAddress: string): SpreadsheetApp.Spreadsheet
  • addEditor(user: User): SpreadsheetApp.Spreadsheet

addEditors

From signature data Google source
  • addEditors(emailAddresses: string[]): SpreadsheetApp.Spreadsheet

addMenu

From signature data Google source
  • addMenu(name: string, subMenus: unknown[]): void

addViewer

From signature data Google source
  • addViewer(emailAddress: string): SpreadsheetApp.Spreadsheet
  • addViewer(user: User): SpreadsheetApp.Spreadsheet

addViewers

From signature data Google source
  • addViewers(emailAddresses: string[]): SpreadsheetApp.Spreadsheet

appendRow

From signature data Google source
  • appendRow(rowContents: unknown[]): SpreadsheetApp.Sheet

autoResizeColumn

From signature data Google source
  • autoResizeColumn(columnPosition: number): SpreadsheetApp.Sheet

copy

From signature data Google source
  • copy(name: string): SpreadsheetApp.Spreadsheet

createDeveloperMetadataFinder

From signature data Google source
  • createDeveloperMetadataFinder(): SpreadsheetApp.DeveloperMetadataFinder

createTextFinder

From signature data Google source
  • createTextFinder(findText: string): SpreadsheetApp.TextFinder

deleteActiveSheet

From signature data Google source
  • deleteActiveSheet(): SpreadsheetApp.Sheet

deleteColumn

From signature data Google source
  • deleteColumn(columnPosition: number): SpreadsheetApp.Sheet

deleteColumns

From signature data Google source
  • deleteColumns(columnPosition: number, howMany: number): void

deleteRow

From signature data Google source
  • deleteRow(rowPosition: number): SpreadsheetApp.Sheet

deleteRows

From signature data Google source
  • deleteRows(rowPosition: number, howMany: number): void

deleteSheet

From signature data Google source
  • deleteSheet(sheet: SpreadsheetApp.Sheet): void

duplicateActiveSheet

From signature data Google source
  • duplicateActiveSheet(): SpreadsheetApp.Sheet

getActiveCell

From signature data Google source
  • getActiveCell(): SpreadsheetApp.Range

getActiveRange

From signature data Google source
  • getActiveRange(): SpreadsheetApp.Range

getActiveRangeList

From signature data Google source
  • getActiveRangeList(): SpreadsheetApp.RangeList | null

getActiveSheet

From signature data Google source
  • getActiveSheet(): SpreadsheetApp.Sheet

getAs

From signature data Google source
  • getAs(contentType: string): Blob

getBandings

From signature data Google source
  • getBandings(): SpreadsheetApp.Banding[]

getBlob

From signature data Google source
  • getBlob(): Blob

getColumnWidth

From signature data Google source
  • getColumnWidth(columnPosition: number): number

getCurrentCell

From signature data Google source
  • getCurrentCell(): SpreadsheetApp.Range | null

getDataRange

From signature data Google source
  • getDataRange(): SpreadsheetApp.Range

getDataSourceFormulas

From signature data Google source
  • getDataSourceFormulas(): SpreadsheetApp.DataSourceFormula[]

getDataSourcePivotTables

From signature data Google source
  • getDataSourcePivotTables(): SpreadsheetApp.DataSourcePivotTable[]

getDataSourceRefreshSchedules

From signature data Google source
  • getDataSourceRefreshSchedules(): SpreadsheetApp.DataSourceRefreshSchedule[]

getDataSourceSheets

From signature data Google source
  • getDataSourceSheets(): SpreadsheetApp.DataSourceSheet[]

getDataSourceTables

From signature data Google source
  • getDataSourceTables(): SpreadsheetApp.DataSourceTable[]

getDataSources

From signature data Google source
  • getDataSources(): SpreadsheetApp.DataSource[]

getDeveloperMetadata

From signature data Google source
  • getDeveloperMetadata(): SpreadsheetApp.DeveloperMetadata[]

getEditors

From signature data Google source
  • getEditors(): User[]

getFormUrl

From signature data Google source
  • getFormUrl(): string

getFrozenColumns

From signature data Google source
  • getFrozenColumns(): number

getFrozenRows

From signature data Google source
  • getFrozenRows(): number

getId

From signature data Google source
  • getId(): string

getImages

From signature data Google source
  • getImages(): SpreadsheetApp.OverGridImage[]

getIterativeCalculationConvergenceThreshold

From signature data Google source
  • getIterativeCalculationConvergenceThreshold(): number

getLastColumn

From signature data Google source
  • getLastColumn(): number

getLastRow

From signature data Google source
  • getLastRow(): number

getMaxIterativeCalculationCycles

From signature data Google source
  • getMaxIterativeCalculationCycles(): number

getName

From signature data Google source
  • getName(): string

getNamedRanges

From signature data Google source
  • getNamedRanges(): SpreadsheetApp.NamedRange[]

getNumSheets

From signature data Google source
  • getNumSheets(): number

getOwner

From signature data Google source
  • getOwner(): User | null

getPredefinedSpreadsheetThemes

From signature data Google source
  • getPredefinedSpreadsheetThemes(): SpreadsheetApp.SpreadsheetTheme[]

getProtections

From signature data Google source
  • getProtections(type: SpreadsheetApp.ProtectionType): SpreadsheetApp.Protection[]

getRange

From signature data Google source
  • getRange(a1Notation: string): SpreadsheetApp.Range

getRangeByName

From signature data Google source
  • getRangeByName(name: string): SpreadsheetApp.Range | null

getRangeList

From signature data Google source
  • getRangeList(a1Notations: string[]): SpreadsheetApp.RangeList

getRecalculationInterval

From signature data Google source
  • getRecalculationInterval(): SpreadsheetApp.RecalculationInterval

getRowHeight

From signature data Google source
  • getRowHeight(rowPosition: number): number

getSelection

From signature data Google source
  • getSelection(): SpreadsheetApp.Selection

getSheetById

From signature data Google source
  • getSheetById(id: number): SpreadsheetApp.Sheet | null

getSheetByName

From signature data Google source
  • getSheetByName(name: string): SpreadsheetApp.Sheet | null

getSheetId

From signature data Google source
  • getSheetId(): number

getSheetName

From signature data Google source
  • getSheetName(): string

getSheetProtection

From signature data Google source
  • getSheetProtection(): SpreadsheetApp.PageProtection

getSheetValues

From signature data Google source
  • getSheetValues(startRow: number, startColumn: number, numRows: number, numColumns: number): unknown[][]

getSheets

From signature data Google source
  • getSheets(): SpreadsheetApp.Sheet[]

getSpreadsheetLocale

From signature data Google source
  • getSpreadsheetLocale(): string

getSpreadsheetTheme

From signature data Google source
  • getSpreadsheetTheme(): SpreadsheetApp.SpreadsheetTheme | null

getSpreadsheetTimeZone

From signature data Google source
  • getSpreadsheetTimeZone(): string

getUrl

From signature data Google source
  • getUrl(): string

getViewers

From signature data Google source
  • getViewers(): User[]

hideColumn

From signature data Google source
  • hideColumn(column: SpreadsheetApp.Range): void

hideRow

From signature data Google source
  • hideRow(row: SpreadsheetApp.Range): void

insertColumnAfter

From signature data Google source
  • insertColumnAfter(afterPosition: number): SpreadsheetApp.Sheet

insertColumnBefore

From signature data Google source
  • insertColumnBefore(beforePosition: number): SpreadsheetApp.Sheet

insertColumnsAfter

From signature data Google source
  • insertColumnsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet

insertColumnsBefore

From signature data Google source
  • insertColumnsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet

insertDataSourceSheet

From signature data Google source
  • insertDataSourceSheet(spec: SpreadsheetApp.DataSourceSpec): SpreadsheetApp.DataSourceSheet

insertImage

From signature data Google source
  • 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

From signature data Google source
  • insertRowAfter(afterPosition: number): SpreadsheetApp.Sheet

insertRowBefore

From signature data Google source
  • insertRowBefore(beforePosition: number): SpreadsheetApp.Sheet

insertRowsAfter

From signature data Google source
  • insertRowsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet

insertRowsBefore

From signature data Google source
  • insertRowsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet

insertSheet

From signature data Google source
  • 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

From signature data Google source
  • insertSheetWithDataSourceTable(spec: SpreadsheetApp.DataSourceSpec): SpreadsheetApp.Sheet

isAnonymousView

From signature data Google source
  • isAnonymousView(): boolean

isAnonymousWrite

From signature data Google source
  • isAnonymousWrite(): boolean

isColumnHiddenByUser

From signature data Google source
  • isColumnHiddenByUser(columnPosition: number): boolean

isIterativeCalculationEnabled

From signature data Google source
  • isIterativeCalculationEnabled(): boolean

isRowHiddenByFilter

From signature data Google source
  • isRowHiddenByFilter(rowPosition: number): boolean

isRowHiddenByUser

From signature data Google source
  • isRowHiddenByUser(rowPosition: number): boolean

moveActiveSheet

From signature data Google source
  • moveActiveSheet(pos: number): void

moveChartToObjectSheet

From signature data Google source
  • moveChartToObjectSheet(chart: SpreadsheetApp.EmbeddedChart): SpreadsheetApp.Sheet

refreshAllDataSources

From signature data Google source
  • refreshAllDataSources(): void

removeEditor

From signature data Google source
  • removeEditor(emailAddress: string): SpreadsheetApp.Spreadsheet
  • removeEditor(user: User): SpreadsheetApp.Spreadsheet

removeMenu

From signature data Google source
  • removeMenu(name: string): void

removeNamedRange

From signature data Google source
  • removeNamedRange(name: string): void

removeViewer

From signature data Google source
  • removeViewer(emailAddress: string): SpreadsheetApp.Spreadsheet
  • removeViewer(user: User): SpreadsheetApp.Spreadsheet

rename

From signature data Google source
  • rename(name: string): void

renameActiveSheet

From signature data Google source
  • renameActiveSheet(newName: string): void

resetSpreadsheetTheme

From signature data Google source
  • resetSpreadsheetTheme(): SpreadsheetApp.SpreadsheetTheme

setActiveRange

From signature data Google source
  • setActiveRange(range: SpreadsheetApp.Range): SpreadsheetApp.Range

setActiveRangeList

From signature data Google source
  • setActiveRangeList(rangeList: SpreadsheetApp.RangeList): SpreadsheetApp.RangeList

setActiveSelection

From signature data Google source
  • setActiveSelection(range: SpreadsheetApp.Range): SpreadsheetApp.Range
  • setActiveSelection(a1Notation: string): SpreadsheetApp.Range

setActiveSheet

From signature data Google source
  • setActiveSheet(sheet: SpreadsheetApp.Sheet): SpreadsheetApp.Sheet
  • setActiveSheet(sheet: SpreadsheetApp.Sheet, restoreSelection: boolean): SpreadsheetApp.Sheet

setAnonymousAccess

From signature data Google source
  • setAnonymousAccess(anonymousReadAllowed: boolean, anonymousWriteAllowed: boolean): void

setColumnWidth

From signature data Google source
  • setColumnWidth(columnPosition: number, width: number): SpreadsheetApp.Sheet

setCurrentCell

From signature data Google source
  • setCurrentCell(cell: SpreadsheetApp.Range): SpreadsheetApp.Range

setFrozenColumns

From signature data Google source
  • setFrozenColumns(columns: number): void

setFrozenRows

From signature data Google source
  • setFrozenRows(rows: number): void

setIterativeCalculationConvergenceThreshold

From signature data Google source
  • setIterativeCalculationConvergenceThreshold(minThreshold: number): SpreadsheetApp.Spreadsheet

setIterativeCalculationEnabled

From signature data Google source
  • setIterativeCalculationEnabled(isEnabled: boolean): SpreadsheetApp.Spreadsheet

setMaxIterativeCalculationCycles

From signature data Google source
  • setMaxIterativeCalculationCycles(maxIterations: number): SpreadsheetApp.Spreadsheet

setNamedRange

From signature data Google source
  • setNamedRange(name: string, range: SpreadsheetApp.Range): void

setRecalculationInterval

From signature data Google source
  • setRecalculationInterval(recalculationInterval: SpreadsheetApp.RecalculationInterval): SpreadsheetApp.Spreadsheet

setRowHeight

From signature data Google source
  • setRowHeight(rowPosition: number, height: number): SpreadsheetApp.Sheet

setSheetProtection

From signature data Google source
  • setSheetProtection(permissions: SpreadsheetApp.PageProtection): void

setSpreadsheetLocale

From signature data Google source
  • setSpreadsheetLocale(locale: string): void

setSpreadsheetTheme

From signature data Google source
  • setSpreadsheetTheme(theme: SpreadsheetApp.SpreadsheetTheme): SpreadsheetApp.SpreadsheetTheme

setSpreadsheetTimeZone

From signature data Google source
  • setSpreadsheetTimeZone(timeZone: string): void

show

From signature data Google source
  • show(userInterface: unknown): void

sort

From signature data Google source
  • sort(columnPosition: number): SpreadsheetApp.Sheet
  • sort(columnPosition: number, ascending: boolean): SpreadsheetApp.Sheet

toast

From signature data Google source
  • toast(message: string): void
  • toast(message: string, title: string): void
  • toast(message: string, title: string, timeoutSeconds: number): void

unhideColumn

From signature data Google source
  • unhideColumn(column: SpreadsheetApp.Range): void

unhideRow

From signature data Google source
  • unhideRow(row: SpreadsheetApp.Range): void

updateMenu

From signature data Google source
  • updateMenu(name: string, subMenus: unknown[]): void

waitForAllDataExecutionsCompletion

From signature data Google source
  • 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