Object reference
Sheet
A Sheet is one tab inside a Google spreadsheet. Reach it with getSheetByName() or getActiveSheet(), then inspect getLastRow() or read cells with getRange().
SpreadsheetApp.SheetStart here
Get this object first
Look up a specific tab by name with getSheetByName(), or call getActiveSheet() when a menu action should work on the tab currently open.
function logActiveSheetName() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
Logger.log(sheet.getName());
} Then use it
Common actions
Choose an action, then open its example only when you need the code.
Check the last row with content
This reads getLastRow() to find where the used part of the tab ends without changing any cells.
SpreadsheetApp.SheetShow example code
function logLastUsedRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
Logger.log('Last used row: ' + sheet.getLastRow());
} Read all used cells with getDataRange
This checks getLastRow() so a blank tab is skipped, then reads the used area as a 2D array in one call with getDataRange().getValues().
SpreadsheetApp.SheetSpreadsheetApp.RangeShow example code
function logDataRangeRowCount() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (sheet.getLastRow() === 0) {
Logger.log('Sheet is blank.');
return;
}
const rows = sheet.getDataRange().getValues();
Logger.log('Data range rows: ' + rows.length);
} Read data rows below a header row
This checks that the tab has at least one row below row 1 before calling getRange(), avoiding invalid range dimension errors on empty tabs.
SpreadsheetApp.SheetSpreadsheetApp.RangeShow example code
function logDataRowsBelowHeader() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const numRows = sheet.getLastRow() - 1;
if (numRows < 1) {
Logger.log('No data rows below the header row.');
return;
}
const rows = sheet.getRange(2, 1, numRows, sheet.getLastColumn()).getValues();
Logger.log('Data rows read: ' + rows.length);
} 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.Sheet- Object
Sheet- Runtime
- From signature data
Methods and signatures
Browse 128 methods
activate
- activate(): SpreadsheetApp.Sheet
addDeveloperMetadata
- addDeveloperMetadata(key: string): SpreadsheetApp.Sheet
- addDeveloperMetadata(key: string, visibility: SpreadsheetApp.DeveloperMetadataVisibility): SpreadsheetApp.Sheet
- addDeveloperMetadata(key: string, value: string): SpreadsheetApp.Sheet
- addDeveloperMetadata(key: string, value: string, visibility: SpreadsheetApp.DeveloperMetadataVisibility): SpreadsheetApp.Sheet
appendRow
- appendRow(rowContents: unknown[]): SpreadsheetApp.Sheet
asDataSourceSheet
- asDataSourceSheet(): SpreadsheetApp.DataSourceSheet | null
autoResizeColumn
- autoResizeColumn(columnPosition: number): SpreadsheetApp.Sheet
autoResizeColumns
- autoResizeColumns(startingColumn: number, numColumns: number): SpreadsheetApp.Sheet
autoResizeRows
- autoResizeRows(startRow: number, numRows: number): SpreadsheetApp.Sheet
clear
- clear(): SpreadsheetApp.Sheet
- clear(options: SpreadsheetApp.ClearOptions): SpreadsheetApp.Sheet
clearConditionalFormatRules
- clearConditionalFormatRules(): void
clearContents
- clearContents(): SpreadsheetApp.Sheet
clearFormats
- clearFormats(): SpreadsheetApp.Sheet
clearNotes
- clearNotes(): SpreadsheetApp.Sheet
collapseAllColumnGroups
- collapseAllColumnGroups(): SpreadsheetApp.Sheet
collapseAllRowGroups
- collapseAllRowGroups(): SpreadsheetApp.Sheet
copyTo
- copyTo(spreadsheet: SpreadsheetApp.Spreadsheet): SpreadsheetApp.Sheet
createDeveloperMetadataFinder
- createDeveloperMetadataFinder(): SpreadsheetApp.DeveloperMetadataFinder
createTextFinder
- createTextFinder(findText: string): SpreadsheetApp.TextFinder
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
expandAllColumnGroups
- expandAllColumnGroups(): SpreadsheetApp.Sheet
expandAllRowGroups
- expandAllRowGroups(): SpreadsheetApp.Sheet
expandColumnGroupsUpToDepth
- expandColumnGroupsUpToDepth(groupDepth: number): SpreadsheetApp.Sheet
expandRowGroupsUpToDepth
- expandRowGroupsUpToDepth(groupDepth: number): SpreadsheetApp.Sheet
getActiveCell
- getActiveCell(): SpreadsheetApp.Range
getActiveRange
- getActiveRange(): SpreadsheetApp.Range
getActiveRangeList
- getActiveRangeList(): SpreadsheetApp.RangeList | null
getBandings
- getBandings(): SpreadsheetApp.Banding[]
getCharts
- getCharts(): SpreadsheetApp.EmbeddedChart[]
getColumnGroup
- getColumnGroup(columnIndex: number, groupDepth: number): SpreadsheetApp.Group | null
getColumnGroupControlPosition
- getColumnGroupControlPosition(): SpreadsheetApp.GroupControlTogglePosition
getColumnGroupDepth
- getColumnGroupDepth(columnIndex: number): number
getColumnWidth
- getColumnWidth(columnPosition: number): number
getConditionalFormatRules
- getConditionalFormatRules(): SpreadsheetApp.ConditionalFormatRule[]
getCurrentCell
- getCurrentCell(): SpreadsheetApp.Range | null
getDataRange
- getDataRange(): SpreadsheetApp.Range
getDataSourceFormulas
- getDataSourceFormulas(): SpreadsheetApp.DataSourceFormula[]
getDataSourcePivotTables
- getDataSourcePivotTables(): SpreadsheetApp.DataSourcePivotTable[]
getDataSourceTables
- getDataSourceTables(): SpreadsheetApp.DataSourceTable[]
getDeveloperMetadata
- getDeveloperMetadata(): SpreadsheetApp.DeveloperMetadata[]
getDrawings
- getDrawings(): SpreadsheetApp.Drawing[]
getFilter
- getFilter(): SpreadsheetApp.Filter | null
getFormUrl
- getFormUrl(): string | null
getFrozenColumns
- getFrozenColumns(): number
getFrozenRows
- getFrozenRows(): number
getImages
- getImages(): SpreadsheetApp.OverGridImage[]
getIndex
- getIndex(): number
getLastColumn
- getLastColumn(): number
getLastRow
- getLastRow(): number
getMaxColumns
- getMaxColumns(): number
getMaxRows
- getMaxRows(): number
getName
- getName(): string
getNamedRanges
- getNamedRanges(): SpreadsheetApp.NamedRange[]
getParent
- getParent(): SpreadsheetApp.Spreadsheet
getPivotTables
- getPivotTables(): SpreadsheetApp.PivotTable[]
getProtections
- getProtections(type: SpreadsheetApp.ProtectionType): SpreadsheetApp.Protection[]
getRange
- getRange(a1Notation: string): SpreadsheetApp.Range
- getRange(row: number, column: number): SpreadsheetApp.Range
- getRange(row: number, column: number, numRows: number): SpreadsheetApp.Range
- getRange(row: number, column: number, numRows: number, numColumns: number): SpreadsheetApp.Range
getRangeList
- getRangeList(a1Notations: string[]): SpreadsheetApp.RangeList
getRowGroup
- getRowGroup(rowIndex: number, groupDepth: number): SpreadsheetApp.Group | null
getRowGroupControlPosition
- getRowGroupControlPosition(): SpreadsheetApp.GroupControlTogglePosition
getRowGroupDepth
- getRowGroupDepth(rowIndex: number): number
getRowHeight
- getRowHeight(rowPosition: number): number
getSelection
- getSelection(): SpreadsheetApp.Selection
getSheetId
- getSheetId(): number
getSheetName
- getSheetName(): string
getSheetProtection
- getSheetProtection(): SpreadsheetApp.PageProtection
getSheetValues
- getSheetValues(startRow: number, startColumn: number, numRows: number, numColumns: number): unknown[][]
getSlicers
- getSlicers(): SpreadsheetApp.Slicer[]
getTabColor
- getTabColor(): string | null
getTabColorObject
- getTabColorObject(): SpreadsheetApp.Color | null
getType
- getType(): SpreadsheetApp.SheetType
hasHiddenGridlines
- hasHiddenGridlines(): boolean
hideColumn
- hideColumn(column: SpreadsheetApp.Range): void
hideColumns
- hideColumns(columnIndex: number): void
- hideColumns(columnIndex: number, numColumns: number): void
hideRow
- hideRow(row: SpreadsheetApp.Range): void
hideRows
- hideRows(rowIndex: number): void
- hideRows(rowIndex: number, numRows: number): void
hideSheet
- hideSheet(): SpreadsheetApp.Sheet
insertChart
- insertChart(chart: SpreadsheetApp.EmbeddedChart): void
insertColumnAfter
- insertColumnAfter(afterPosition: number): SpreadsheetApp.Sheet
insertColumnBefore
- insertColumnBefore(beforePosition: number): SpreadsheetApp.Sheet
insertColumns
- insertColumns(columnIndex: number): void
- insertColumns(columnIndex: number, numColumns: number): void
insertColumnsAfter
- insertColumnsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet
insertColumnsBefore
- insertColumnsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet
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
insertRows
- insertRows(rowIndex: number): void
- insertRows(rowIndex: number, numRows: number): void
insertRowsAfter
- insertRowsAfter(afterPosition: number, howMany: number): SpreadsheetApp.Sheet
insertRowsBefore
- insertRowsBefore(beforePosition: number, howMany: number): SpreadsheetApp.Sheet
insertSlicer
- insertSlicer(range: SpreadsheetApp.Range, anchorRowPos: number, anchorColPos: number): SpreadsheetApp.Slicer
- insertSlicer(range: SpreadsheetApp.Range, anchorRowPos: number, anchorColPos: number, offsetX: number, offsetY: number): SpreadsheetApp.Slicer
isColumnHiddenByUser
- isColumnHiddenByUser(columnPosition: number): boolean
isRightToLeft
- isRightToLeft(): boolean
isRowHiddenByFilter
- isRowHiddenByFilter(rowPosition: number): boolean
isRowHiddenByUser
- isRowHiddenByUser(rowPosition: number): boolean
isSheetHidden
- isSheetHidden(): boolean
moveColumns
- moveColumns(columnSpec: SpreadsheetApp.Range, destinationIndex: number): void
moveRows
- moveRows(rowSpec: SpreadsheetApp.Range, destinationIndex: number): void
newChart
- newChart(): SpreadsheetApp.EmbeddedChartBuilder
protect
- protect(): SpreadsheetApp.Protection
removeChart
- removeChart(chart: SpreadsheetApp.EmbeddedChart): void
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
setColumnGroupControlPosition
- setColumnGroupControlPosition(position: SpreadsheetApp.GroupControlTogglePosition): SpreadsheetApp.Sheet
setColumnWidth
- setColumnWidth(columnPosition: number, width: number): SpreadsheetApp.Sheet
setColumnWidths
- setColumnWidths(startColumn: number, numColumns: number, width: number): SpreadsheetApp.Sheet
setConditionalFormatRules
- setConditionalFormatRules(rules: SpreadsheetApp.ConditionalFormatRule[]): void
setCurrentCell
- setCurrentCell(cell: SpreadsheetApp.Range): SpreadsheetApp.Range
setFrozenColumns
- setFrozenColumns(columns: number): void
setFrozenRows
- setFrozenRows(rows: number): void
setHiddenGridlines
- setHiddenGridlines(hideGridlines: boolean): SpreadsheetApp.Sheet
setName
- setName(name: string): SpreadsheetApp.Sheet
setRightToLeft
- setRightToLeft(rightToLeft: boolean): SpreadsheetApp.Sheet
setRowGroupControlPosition
- setRowGroupControlPosition(position: SpreadsheetApp.GroupControlTogglePosition): SpreadsheetApp.Sheet
setRowHeight
- setRowHeight(rowPosition: number, height: number): SpreadsheetApp.Sheet
setRowHeights
- setRowHeights(startRow: number, numRows: number, height: number): SpreadsheetApp.Sheet
setRowHeightsForced
- setRowHeightsForced(startRow: number, numRows: number, height: number): SpreadsheetApp.Sheet
setSheetProtection
- setSheetProtection(permissions: SpreadsheetApp.PageProtection): void
setTabColor
- setTabColor(color: string | null): SpreadsheetApp.Sheet
setTabColorObject
- setTabColorObject(color: SpreadsheetApp.Color): SpreadsheetApp.Sheet
showColumns
- showColumns(columnIndex: number): void
- showColumns(columnIndex: number, numColumns: number): void
showRows
- showRows(rowIndex: number): void
- showRows(rowIndex: number, numRows: number): void
showSheet
- showSheet(): SpreadsheetApp.Sheet
sort
- sort(columnPosition: number): SpreadsheetApp.Sheet
- sort(columnPosition: number, ascending: boolean): SpreadsheetApp.Sheet
unhideColumn
- unhideColumn(column: SpreadsheetApp.Range): void
unhideRow
- unhideRow(row: SpreadsheetApp.Range): void
updateChart
- updateChart(chart: SpreadsheetApp.EmbeddedChart): 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