Google Sheets
SDK reference for google sheets operations
Overview
Google Sheets spreadsheet management and data manipulation
- Category:
productivity - Auth Required: Yes
- Supported Modes: standard, delegated
Operations
createSpreadsheet
Create a new Google Sheets spreadsheet
Arguments:
title(string, required): Title of the spreadsheet
Returns:
AdapterOperationResult - Created spreadsheet with ID, title, and URL
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Created spreadsheet ID |
title | string | Spreadsheet title |
url | string | URL to open spreadsheet in browser |
Example:
readRange
Read data from a range in a spreadsheet
Arguments:
spreadsheetId(string, required): ID of the spreadsheetrange(string, required): Cell range (e.g., "Sheet1!A1:B10")
Returns:
AdapterOperationResult - Normalized range data with values, dimensions, and isEmpty flag
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
range | string | Range that was read |
values | any[][] | 2D array of cell values |
rowCount | number | Number of rows returned |
columnCount | number | Number of columns in widest row |
isEmpty | boolean | Whether the range is empty |
Example:
writeRange
Write data to a range in a spreadsheet
Arguments:
spreadsheetId(string, required): ID of the spreadsheetrange(string, required): Cell range (e.g., "Sheet1!A1:B10")values(array, required): Data to write (2D array)
Returns:
AdapterOperationResult - Normalized write result with update counts
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
updatedRange | string | Range that was updated |
updatedRows | number | Number of rows updated |
updatedColumns | number | Number of columns updated |
updatedCells | number | Total cells updated |
Example:
appendRow
Append a row to a spreadsheet
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetName(string, required): Name of the sheetvalues(array, required): Row values to append
Returns:
AdapterOperationResult - Append operation result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetName | string | Sheet name |
appendedRange | string | Range where data was appended |
appendedRows | number | Number of rows appended |
appendedCells | number | Total cells appended |
values | any[] | Values that were appended |
Example:
getSpreadsheet
Get spreadsheet metadata and properties
Arguments:
spreadsheetId(string, required): ID of the spreadsheet
Returns:
AdapterOperationResult - Normalized spreadsheet metadata with sheets array
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
title | string | Spreadsheet title |
url | string | URL to open spreadsheet |
locale | string | Spreadsheet locale (e.g., en_US) |
timeZone | string | Spreadsheet timezone |
sheets | GoogleSheetsSheetInfo[] | List of sheets in the spreadsheet |
sheets item fields (GoogleSheetsSheetInfo)
| Field | Type | Description |
|---|---|---|
sheetId | number | Numeric sheet ID |
title | string | Sheet tab name |
index | number | Sheet index (0-based) |
rowCount | number | Total rows in sheet |
columnCount | number | Total columns in sheet |
isHidden | boolean | Whether sheet is hidden |
| namedRanges | GoogleSheetsNamedRange[] | List of named ranges |
namedRanges item fields (GoogleSheetsNamedRange)
| Field | Type | Description |
|---|---|---|
name | string | Named range identifier |
range | string | Range in A1 notation |
sheetId | number | Sheet ID containing the range (optional) |
Example:
insertAtCell
Insert a value at a specific cell with optional formatting
Arguments:
spreadsheetId(string, required): ID of the spreadsheetcell(string, required): Cell reference in format SheetName!A1value(string, required): Value to insertbold(boolean, optional): Make text bolditalic(boolean, optional): Make text italicforegroundColor(string, optional): Text color (hex or named color)backgroundColor(string, optional): Cell background color (hex or named color)
Returns:
AdapterOperationResult - Insert operation result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
cell | string | Cell reference (e.g., Sheet1!A1) |
value | any | Value that was inserted |
previousValue | any | Previous cell value if any (optional) |
formatted | boolean | Whether formatting was applied |
Example:
insertFormula
Insert a formula at a specific cell
Arguments:
spreadsheetId(string, required): ID of the spreadsheetcell(string, required): Cell reference in format SheetName!A1formula(string, required): Formula to insert (with or without leading =)note(string, optional): Optional note to add to the cell
Returns:
AdapterOperationResult - Formula insertion result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
cell | string | Cell reference |
formula | string | Formula that was inserted |
Example:
formatRange
Apply formatting to a range of cells
Arguments:
spreadsheetId(string, required): ID of the spreadsheetrange(string, required): Range in format SheetName!A1:B10bold(boolean, optional): Make text bolditalic(boolean, optional): Make text italicforegroundColor(string, optional): Text color (hex or named color)backgroundColor(string, optional): Cell background color (hex or named color)borders(boolean, optional): Add borders to cells
Returns:
AdapterOperationResult - Formatting result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
range | string | Range that was formatted |
formattingApplied | string[] | List of formatting options applied |
Example:
createChart
Create a chart from spreadsheet data
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetId(number, required): ID of the sheet containing datadataRange(string, required): Data range for the chart (e.g., A1:B10)chartType(string, required): Chart type: BAR, LINE, AREA, PIE, or SCATTERtitle(string, required): Chart titleposition(object, required): Chart position with row, column, rowCount, columnCount
Returns:
AdapterOperationResult - Chart creation result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
chartType | string | Type of chart created |
title | string | Chart title |
dataRange | string | Data range used for chart |
positionRow | number | Row where chart is anchored |
positionColumn | string | Column where chart is anchored |
Example:
findAndReplace
Find and replace text in a spreadsheet
Arguments:
spreadsheetId(string, required): ID of the spreadsheetfindText(string, required): Text to findreplaceText(string, required): Text to replace withsheetName(string, optional): Limit search to specific sheetmatchCase(boolean, optional): Case-sensitive searchmatchEntireCell(boolean, optional): Match entire cell content only
Returns:
AdapterOperationResult - Find and replace result with count of replacements
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
findText | string | Text that was searched for |
replaceText | string | Replacement text |
occurrencesReplaced | number | Number of replacements made |
sheetName | string | Sheet searched (null for all) (optional) |
matchCase | boolean | Whether search was case-sensitive |
matchEntireCell | boolean | Whether entire cell match required |
Example:
insertMultipleRows
Insert multiple rows of data at once
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetName(string, required): Name of the sheetrowsData(array, required): 2D array of row data to insertstartingRow(number, optional): Row number to start insertion (1-indexed). If not provided, appends to endformattingOptions(object, optional): Optional formatting to apply (bold, italic, foregroundColor, backgroundColor, borders)
Returns:
AdapterOperationResult - Multiple row insertion result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetName | string | Sheet name |
rowsInserted | number | Number of rows inserted |
cellsInserted | number | Total cells inserted |
startingRow | number | Starting row (null if appended) (optional) |
formatted | boolean | Whether formatting was applied |
Example:
clearRange
Clear content from a range of cells
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetName(string, required): Name of the sheetrange(string, required): Range to clear (e.g., A1:B10)
Returns:
AdapterOperationResult - Clear operation result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
range | string | Range that was cleared |
cellsCleared | number | Number of cells cleared |
Example:
insertRows
Insert empty rows at a specific position in a sheet. IMPORTANT: Requires numeric sheetId (get from getSpreadsheet), not sheet name. Row indices are 0-indexed (row 1 in UI = index 0).
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetId(number, required): Numeric sheet ID (get from getSpreadsheet response: sheets[0].properties.sheetId). This is NOT the sheet name.startRowIndex(number, required): Row index to start inserting at (0-indexed). To insert before row 5 in the UI, use index 4.numRows(number, required): Number of rows to insert
Returns:
AdapterOperationResult - Insert rows result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetId | number | Numeric sheet ID |
operation | string | Operation type (insert) |
startRowIndex | number | Row index where insertion started (0-indexed) |
numRows | number | Number of rows inserted |
Example:
deleteRows
Delete rows from a sheet. IMPORTANT: Requires numeric sheetId (get from getSpreadsheet), not sheet name. Row indices are 0-indexed (row 1 in UI = index 0).
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetId(number, required): Numeric sheet ID (get from getSpreadsheet response: sheets[0].properties.sheetId). This is NOT the sheet name.startRowIndex(number, required): Row index to start deleting from (0-indexed). To delete row 5 in the UI, use index 4.numRows(number, required): Number of rows to delete
Returns:
AdapterOperationResult - Delete rows result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetId | number | Numeric sheet ID |
operation | string | Operation type (delete) |
startRowIndex | number | Row index where deletion started (0-indexed) |
numRows | number | Number of rows deleted |
Example:
insertColumns
Insert empty columns at a specific position in a sheet. IMPORTANT: Requires numeric sheetId (get from getSpreadsheet), not sheet name. Column indices are 0-indexed (A=0, B=1, C=2, etc.).
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetId(number, required): Numeric sheet ID (get from getSpreadsheet response: sheets[0].properties.sheetId). This is NOT the sheet name.startColumnIndex(number, required): Column index to start inserting at (0-indexed: A=0, B=1, C=2, D=3, etc.). To insert before column D, use index 3.numColumns(number, required): Number of columns to insert
Returns:
AdapterOperationResult - Insert columns result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetId | number | Numeric sheet ID |
operation | string | Operation type (insert) |
startColumnIndex | number | Column index where insertion started (0-indexed) |
startColumnLetter | string | Column letter where insertion started |
numColumns | number | Number of columns inserted |
Example:
deleteColumns
Delete columns from a sheet. IMPORTANT: Requires numeric sheetId (get from getSpreadsheet), not sheet name. Column indices are 0-indexed (A=0, B=1, C=2, etc.).
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsheetId(number, required): Numeric sheet ID (get from getSpreadsheet response: sheets[0].properties.sheetId). This is NOT the sheet name.startColumnIndex(number, required): Column index to start deleting from (0-indexed: A=0, B=1, C=2, D=3, etc.). To delete column D, use index 3.numColumns(number, required): Number of columns to delete
Returns:
AdapterOperationResult - Delete columns result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sheetId | number | Numeric sheet ID |
operation | string | Operation type (delete) |
startColumnIndex | number | Column index where deletion started (0-indexed) |
startColumnLetter | string | Column letter where deletion started |
numColumns | number | Number of columns deleted |
Example:
copyRange
Copy data from one range to another location within the same spreadsheet. IMPORTANT: Requires numeric sheetIds (get from getSpreadsheet), not sheet names. Can copy within same sheet or across sheets.
Arguments:
spreadsheetId(string, required): ID of the spreadsheetsourceSheetId(number, required): Numeric sheet ID of the source sheet (get from getSpreadsheet response: sheets[n].properties.sheetId)sourceRange(string, required): Source range in A1 notation WITHOUT sheet name (e.g., "A1:C5", not "Sheet1!A1:C5")targetSheetId(number, required): Numeric sheet ID of the target sheet (can be same as sourceSheetId to copy within same sheet)targetStartCell(string, required): Target start cell in A1 notation (e.g., "E1"). The copied data will fill cells starting from this position.
Returns:
AdapterOperationResult - Copy range result
Response Fields:
| Field | Type | Description |
|---|---|---|
spreadsheetId | string | Spreadsheet ID |
sourceSheetId | number | Source sheet ID |
sourceRange | string | Source range in A1 notation |
targetSheetId | number | Target sheet ID |
targetStartCell | string | Target start cell |
Example: