Skip to main content

Actions

The ballerinax/googleapis.sheets package exposes the following clients:

ClientPurpose
ClientProvides spreadsheet management, worksheet management, and data-level operations via the Google Sheets API v4.

Client

Provides spreadsheet management, worksheet management, and data-level operations via the Google Sheets API v4.

Configuration

FieldTypeDefaultDescription
auth`BearerTokenConfigOAuth2RefreshTokenGrantConfig`Required
httpVersionHttpVersionHTTP_1_1The HTTP version understood by the client.
timeoutdecimal60Request timeout in seconds.
retryConfigRetryConfig()Retry configuration for failed requests.
secureSocketClientSecureSocket()SSL/TLS configuration.
proxyProxyConfig()Proxy server configuration.

Initializing the client

import ballerinax/googleapis.sheets;

configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string refreshToken = ?;

sheets:Client spreadsheetClient = check new ({
auth: {
clientId: clientId,
clientSecret: clientSecret,
refreshUrl: sheets:REFRESH_URL,
refreshToken: refreshToken
}
});

Operations

Spreadsheet management

createSpreadsheet

Creates a new spreadsheet with the given name.

Parameters:

NameTypeRequiredDescription
namestringYesName of the spreadsheet to create.

Returns: Spreadsheet|error

Sample code:

sheets:Spreadsheet response = check spreadsheetClient->createSpreadsheet("NewSpreadsheet");

Sample response:

{
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
"properties": {"title": "NewSpreadsheet", "locale": "en_US", "autoRecalc": "ON_CHANGE", "timeZone": "America/New_York"},
"sheets": [{"properties": {"sheetId": 0, "title": "Sheet1", "index": 0, "sheetType": "GRID", "gridProperties": {"rowCount": 1000, "columnCount": 26}}}],
"spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit"
}
openSpreadsheetById

Opens a spreadsheet by its Google Sheets ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet.

Returns: Spreadsheet|error

Sample code:

sheets:Spreadsheet spreadsheet = check spreadsheetClient->openSpreadsheetById("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms");

Sample response:

{
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
"properties": {"title": "MySpreadsheet", "locale": "en_US", "autoRecalc": "ON_CHANGE", "timeZone": "America/New_York"},
"sheets": [{"properties": {"sheetId": 0, "title": "Sheet1", "index": 0, "sheetType": "GRID"}}],
"spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit"
}
openSpreadsheetByUrl

Opens a spreadsheet by its full Google Sheets URL.

Parameters:

NameTypeRequiredDescription
urlstringYesThe URL of the spreadsheet.

Returns: Spreadsheet|error

Sample code:

sheets:Spreadsheet spreadsheet = check spreadsheetClient->openSpreadsheetByUrl(
"https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit"
);

Sample response:

{
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
"properties": {"title": "MySpreadsheet", "locale": "en_US"},
"sheets": [{"properties": {"sheetId": 0, "title": "Sheet1", "index": 0}}],
"spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit"
}
getAllSpreadsheets

Returns a stream of all spreadsheet files accessible by the authenticated user.

Parameters:

NameTypeRequiredDescription

Returns: stream<File, error?>|error

Sample code:

stream<sheets:File, error?> files = check spreadsheetClient->getAllSpreadsheets();
check from sheets:File file in files
do {
// process each file
};

Sample response:

{"kind": "drive#file", "id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "name": "MySpreadsheet", "mimeType": "application/vnd.google-apps.spreadsheet"}
renameSpreadsheet

Renames an existing spreadsheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
namestringYesNew name for the spreadsheet.

Returns: error?

Sample code:

check spreadsheetClient->renameSpreadsheet("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "RenamedSpreadsheet");

Worksheet management

getSheets

Returns all worksheets of a spreadsheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.

Returns: Sheet[]|error

Sample code:

sheets:Sheet[] worksheets = check spreadsheetClient->getSheets("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms");

Sample response:

[
{"properties": {"sheetId": 0, "title": "Sheet1", "index": 0, "sheetType": "GRID", "gridProperties": {"rowCount": 1000, "columnCount": 26}}},
{"properties": {"sheetId": 123456, "title": "Sheet2", "index": 1, "sheetType": "GRID", "gridProperties": {"rowCount": 1000, "columnCount": 26}}}
]
getSheetByName

Returns a specific worksheet by name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet to retrieve.

Returns: Sheet|error

Sample code:

sheets:Sheet sheet = check spreadsheetClient->getSheetByName("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "Sheet1");

Sample response:

{"properties": {"sheetId": 0, "title": "Sheet1", "index": 0, "sheetType": "GRID", "gridProperties": {"rowCount": 1000, "columnCount": 26}}}
addSheet

Adds a new worksheet to the spreadsheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName for the new worksheet.

Returns: Sheet|error

Sample code:

sheets:Sheet newSheet = check spreadsheetClient->addSheet("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "NewWorksheet");

Sample response:

{"properties": {"sheetId": 987654, "title": "NewWorksheet", "index": 1, "sheetType": "GRID", "gridProperties": {"rowCount": 1000, "columnCount": 26}}}
removeSheet

Deletes a worksheet by its sheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet to delete.

Returns: error?

Sample code:

check spreadsheetClient->removeSheet("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", 987654);
removeSheetByName

Deletes a worksheet by its name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet to delete.

Returns: error?

Sample code:

check spreadsheetClient->removeSheetByName("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "NewWorksheet");
renameSheet

Renames an existing worksheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesCurrent name of the worksheet.
namestringYesNew name for the worksheet.

Returns: error?

Sample code:

check spreadsheetClient->renameSheet("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "Sheet1", "RenamedSheet");
copyTo

Copies a worksheet to another spreadsheet by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the source spreadsheet.
sheetIdintYesID of the worksheet to copy.
destinationIdstringYesID of the destination spreadsheet.

Returns: error?

Sample code:

check spreadsheetClient->copyTo("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", 0, "destinationSpreadsheetId");
copyToBySheetName

Copies a worksheet to another spreadsheet by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the source spreadsheet.
sheetNamestringYesName of the worksheet to copy.
destinationIdstringYesID of the destination spreadsheet.

Returns: error?

Sample code:

check spreadsheetClient->copyToBySheetName("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "Sheet1", "destinationSpreadsheetId");
clearAll

Clears all content and formatting from a worksheet by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet to clear.

Returns: error?

Sample code:

check spreadsheetClient->clearAll("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", 0);
clearAllBySheetName

Clears all content and formatting from a worksheet by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet to clear.

Returns: error?

Sample code:

check spreadsheetClient->clearAllBySheetName("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "Sheet1");

Range operations

setRange

Sets values for a given range of cells in a worksheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
rangeRangeYesThe Range record containing A1 notation and a 2D array of values.
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: error?

Sample code:

sheets:Range range = {
a1Notation: "A1:C3",
values: [
["Name", "Age", "City"],
["Alice", 30, "New York"],
["Bob", 25, "London"]
]
};
check spreadsheetClient->setRange(spreadsheetId, "Sheet1", range);
getRange

Gets the values in a given range of the worksheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
a1NotationstringYesThe range to retrieve in A1 notation (e.g., "A1:C3").
valueRenderOptionstring?NoHow values should be rendered: "FORMATTED_VALUE", "UNFORMATTED_VALUE", or "FORMULA". Default is "FORMATTED_VALUE".

Returns: Range|error

Sample code:

sheets:Range range = check spreadsheetClient->getRange(spreadsheetId, "Sheet1", "A1:C3");

Sample response:

{
"a1Notation": "A1:C3",
"values": [
["Name", "Age", "City"],
["Alice", "30", "New York"],
["Bob", "25", "London"]
]
}
clearRange

Clears the contents, formats, and data validation rules of a given range.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
a1NotationstringYesThe range to clear in A1 notation.

Returns: error?

Sample code:

check spreadsheetClient->clearRange(spreadsheetId, "Sheet1", "A1:C3");

Row operations

createOrUpdateRow

Creates or updates a row at the specified position.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
rowintYesRow number (1-based) to set data.
values`(intstringdecimal)[]`
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: error?

Sample code:

check spreadsheetClient->createOrUpdateRow(spreadsheetId, "Sheet1", 1, ["Name", "Age", "City"]);
getRow

Gets the values in the given row of the worksheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
rowintYesRow number to retrieve.
valueRenderOptionstring?NoHow values should be rendered: "FORMATTED_VALUE", "UNFORMATTED_VALUE", or "FORMULA".

Returns: Row|error

Sample code:

sheets:Row row = check spreadsheetClient->getRow(spreadsheetId, "Sheet1", 1);

Sample response:

{"rowPosition": 1, "values": ["Name", "Age", "City"]}
deleteRows

Deletes a number of rows starting at the given position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
rowintYesStarting row position.
numberOfRowsintYesNumber of rows to delete.

Returns: error?

Sample code:

check spreadsheetClient->deleteRows(spreadsheetId, 0, 5, 2);
deleteRowsBySheetName

Deletes a number of rows starting at the given position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
rowintYesStarting row position.
numberOfRowsintYesNumber of rows to delete.

Returns: error?

Sample code:

check spreadsheetClient->deleteRowsBySheetName(spreadsheetId, "Sheet1", 5, 2);
addRowsBefore

Inserts rows before the given row position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
indexintYesRow position before which new rows are inserted.
numberOfRowsintYesNumber of rows to insert.

Returns: error?

Sample code:

check spreadsheetClient->addRowsBefore(spreadsheetId, 0, 3, 2);
addRowsBeforeBySheetName

Inserts rows before the given row position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
indexintYesRow position before which new rows are inserted.
numberOfRowsintYesNumber of rows to insert.

Returns: error?

Sample code:

check spreadsheetClient->addRowsBeforeBySheetName(spreadsheetId, "Sheet1", 3, 2);
addRowsAfter

Inserts rows after the given row position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
indexintYesRow position after which new rows are inserted.
numberOfRowsintYesNumber of rows to insert.

Returns: error?

Sample code:

check spreadsheetClient->addRowsAfter(spreadsheetId, 0, 5, 3);
addRowsAfterBySheetName

Inserts rows after the given row position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
indexintYesRow position after which new rows are inserted.
numberOfRowsintYesNumber of rows to insert.

Returns: error?

Sample code:

check spreadsheetClient->addRowsAfterBySheetName(spreadsheetId, "Sheet1", 5, 3);
appendValue

Appends a single row of values to the bottom of a table within the specified range.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
values`(intstringdecimal
a1RangeA1RangeYesThe A1 range defining the target table.
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: ValueRange|error

Sample code:

sheets:ValueRange result = check spreadsheetClient->appendValue(
spreadsheetId,
["Charlie", 28, "Paris"],
{sheetName: "Sheet1", startIndex: "A1", endIndex: "C1"}
);

Sample response:

{"rowPosition": 4, "values": ["Charlie", 28, "Paris"], "a1Range": {"sheetName": "Sheet1", "startIndex": "A4", "endIndex": "C4"}}
appendValues

Appends multiple rows of values to the bottom of a table within the specified range.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
values`(intstringdecimal
a1RangeA1RangeYesThe A1 range defining the target table.
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: ValuesRange|error

Sample code:

sheets:ValuesRange result = check spreadsheetClient->appendValues(
spreadsheetId,
[["Dave", 35, "Berlin"], ["Eve", 22, "Tokyo"]],
{sheetName: "Sheet1", startIndex: "A1", endIndex: "C1"}
);

Sample response:

{"rowStartPosition": 5, "values": [["Dave", 35, "Berlin"], ["Eve", 22, "Tokyo"]], "a1Range": {"sheetName": "Sheet1", "startIndex": "A5", "endIndex": "C6"}}

Column operations

createOrUpdateColumn

Creates or updates a column at the specified position.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
columnstringYesColumn position in letter notation (e.g., "A").
values`(intstringdecimal)[]`
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: error?

Sample code:

check spreadsheetClient->createOrUpdateColumn(spreadsheetId, "Sheet1", "A", ["Name", "Alice", "Bob", "Charlie"]);
getColumn

Gets the values in the given column of the worksheet.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
columnstringYesColumn position in letter notation (e.g., "A").
valueRenderOptionstring?NoHow values should be rendered: "FORMATTED_VALUE", "UNFORMATTED_VALUE", or "FORMULA".

Returns: Column|error

Sample code:

sheets:Column column = check spreadsheetClient->getColumn(spreadsheetId, "Sheet1", "A");

Sample response:

{"columnPosition": "A", "values": ["Name", "Alice", "Bob", "Charlie"]}
deleteColumns

Deletes columns starting at the given position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
columnintYesStarting column position.
numberOfColumnsintYesNumber of columns to delete.

Returns: error?

Sample code:

check spreadsheetClient->deleteColumns(spreadsheetId, 0, 3, 1);
deleteColumnsBySheetName

Deletes columns starting at the given position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
columnintYesStarting column position.
numberOfColumnsintYesNumber of columns to delete.

Returns: error?

Sample code:

check spreadsheetClient->deleteColumnsBySheetName(spreadsheetId, "Sheet1", 3, 1);
addColumnsBefore

Inserts columns before the given column position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
indexintYesColumn position before which new columns are inserted.
numberOfColumnsintYesNumber of columns to insert.

Returns: error?

Sample code:

check spreadsheetClient->addColumnsBefore(spreadsheetId, 0, 2, 3);
addColumnsBeforeBySheetName

Inserts columns before the given column position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
indexintYesColumn position before which new columns are inserted.
numberOfColumnsintYesNumber of columns to insert.

Returns: error?

Sample code:

check spreadsheetClient->addColumnsBeforeBySheetName(spreadsheetId, "Sheet1", 2, 3);
addColumnsAfter

Inserts columns after the given column position by worksheet ID.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
indexintYesColumn position after which new columns are inserted.
numberOfColumnsintYesNumber of columns to insert.

Returns: error?

Sample code:

check spreadsheetClient->addColumnsAfter(spreadsheetId, 0, 2, 3);
addColumnsAfterBySheetName

Inserts columns after the given column position by worksheet name.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
indexintYesColumn position after which new columns are inserted.
numberOfColumnsintYesNumber of columns to insert.

Returns: error?

Sample code:

check spreadsheetClient->addColumnsAfterBySheetName(spreadsheetId, "Sheet1", 2, 3);

Cell operations

setCell

Sets the value of a single cell.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
a1NotationstringYesCell position in A1 notation (e.g., "A1").
value`intstringdecimal`
valueInputOptionstring?NoHow input data should be interpreted: "RAW" or "USER_ENTERED". Default is "RAW".

Returns: error?

Sample code:

check spreadsheetClient->setCell(spreadsheetId, "Sheet1", "A1", "Hello World");
getCell

Gets the value of a single cell.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
a1NotationstringYesCell position in A1 notation (e.g., "A1").
valueRenderOptionstring?NoHow values should be rendered: "FORMATTED_VALUE", "UNFORMATTED_VALUE", or "FORMULA".

Returns: Cell|error

Sample code:

sheets:Cell cell = check spreadsheetClient->getCell(spreadsheetId, "Sheet1", "A1");

Sample response:

{"a1Notation": "A1", "value": "Hello World"}
clearCell

Clears the contents, formats, and data validation rules of a single cell.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetNamestringYesName of the worksheet.
a1NotationstringYesCell position in A1 notation (e.g., "A1").

Returns: error?

Sample code:

check spreadsheetClient->clearCell(spreadsheetId, "Sheet1", "A1");

Data filtering & metadata

setRowMetaData

Adds developer metadata to the given row.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
rowIndexintYesIndex of the target row.
visibilityVisibilityYesVisibility of the metadata: UNSPECIFIED_VISIBILITY, DOCUMENT, or PROJECT.
keystringYesMetadata key assigned to the row.
valuestringYesValue associated with the key (should be unique).

Returns: error?

Sample code:

check spreadsheetClient->setRowMetaData(spreadsheetId, 0, 1, "DOCUMENT", "status", "approved");
getRowByDataFilter

Fetches rows matching the given filter criteria. Supports A1Range, GridRange, and DeveloperMetadataLookup filters.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
filterFilterYesA filter record (A1Range, GridRangeFilter, or DeveloperMetadataLookupFilter).

Returns: ValueRange[]|error

Sample code:

sheets:DeveloperMetadataLookupFilter filter = {
locationType: "ROW",
metadataValue: "approved"
};
sheets:ValueRange[] rows = check spreadsheetClient->getRowByDataFilter(spreadsheetId, 0, filter);

Sample response:

[{"rowPosition": 1, "values": ["Alice", 30, "New York"], "a1Range": {"sheetName": "Sheet1", "startIndex": "A1", "endIndex": "C1"}}]
updateRowByDataFilter

Updates rows matching the given filter criteria.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
filterFilterYesA filter record (A1Range, GridRangeFilter, or DeveloperMetadataLookupFilter).
values`(intstringdecimal
valueInputOptionstringYesHow input data should be interpreted: "RAW" or "USER_ENTERED".

Returns: error?

Sample code:

sheets:DeveloperMetadataLookupFilter filter = {
locationType: "ROW",
metadataValue: "approved"
};
check spreadsheetClient->updateRowByDataFilter(spreadsheetId, 0, filter, ["Alice", 31, "Boston"], "RAW");
deleteRowByDataFilter

Deletes rows matching the given filter criteria.

Parameters:

NameTypeRequiredDescription
spreadsheetIdstringYesID of the spreadsheet.
sheetIdintYesID of the worksheet.
filterFilterYesA filter record (A1Range, GridRangeFilter, or DeveloperMetadataLookupFilter).

Returns: error?

Sample code:

sheets:DeveloperMetadataLookupFilter filter = {
locationType: "ROW",
metadataValue: "approved"
};
check spreadsheetClient->deleteRowByDataFilter(spreadsheetId, 0, filter);