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

This looks up a tab by its exact name and checks for null before calling getRange(), avoiding 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

This gets the tab currently open in the spreadsheet and logs its name and last used row without changing any cells.

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

This reads the tab names in order from getSheets() and logs them without changing the spreadsheet.

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

Generated runtime and signature facts stay separate from the beginner actions above. Open method details only 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