Batch Update
|
|||||
|
|
Applies one or more updates to the spreadsheet.
Each request is validated before being applied. If any request is not valid then the entire request will fail and nothing will be applied.
Some requests have replies to give you some information about how they are applied. The replies will mirror the requests. For example, if you applied 4 updates and the 3rd one had a reply, then the response will have 2 empty replies, the actual reply, and another empty reply, in that order.
Due to the collaborative nature of spreadsheets, it is not guaranteed that the spreadsheet will reflect exactly your changes after this completes, however it is guaranteed that the updates in the request will be applied together atomically. Your changes may be altered with respect to collaborator changes. If there are no collaborators, the spreadsheet should reflect your changes
Authorization
To use this building block you will have to grant access to at least one of the following scopes:
- View and manage the files in your Google Drive
- View and manage Google Drive files and folders that you have opened or created with this app
- View and manage your spreadsheets in Google Drive
Input
This building block consumes 383 input parameters
Name | Format | Description |
---|---|---|
spreadsheetId Required |
STRING |
The spreadsheet to apply the updates to |
includeSpreadsheetInResponse |
BOOLEAN |
Determines if the update response should include the spreadsheet resource |
responseRanges[] |
STRING |
|
responseIncludeGridData |
BOOLEAN |
True if grid data should be returned. Meaningful only if if include_spreadsheet_in_response is 'true'. This parameter is ignored if a field mask was set in the request |
requests[] |
OBJECT |
A single kind of update to apply to a spreadsheet |
requests[].sortRange |
OBJECT |
Sorts data in rows based on a sort order per column |
requests[].sortRange.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].sortRange.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].sortRange.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].sortRange.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].sortRange.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].sortRange.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].sortRange.sortSpecs[] |
OBJECT |
A sort order associated with a specific column or row |
requests[].deleteProtectedRange |
OBJECT |
Deletes the protected range with the given ID |
requests[].deleteProtectedRange.protectedRangeId |
INTEGER |
The ID of the protected range to delete |
requests[].deleteDimensionGroup |
OBJECT |
Deletes a group over the specified range by decrementing the depth of the dimensions in the range. For example, assume the sheet has a depth-1 group over B:E and a depth-2 group over C:D. Deleting a group over D:E leaves the sheet with a depth-1 group over B:D and a depth-2 group over C:C |
requests[].deleteDimensionGroup.range |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].deleteDimensionGroup.range.sheetId |
INTEGER |
The sheet this span is on |
requests[].deleteDimensionGroup.range.dimension |
ENUMERATION |
The dimension of the span |
requests[].deleteDimensionGroup.range.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].deleteDimensionGroup.range.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].duplicateFilterView |
OBJECT |
Duplicates a particular filter view |
requests[].duplicateFilterView.filterId |
INTEGER |
The ID of the filter being duplicated |
requests[].addChart |
OBJECT |
Adds a chart to a sheet in the spreadsheet |
requests[].addChart.chart |
OBJECT |
A chart embedded in a sheet |
requests[].addChart.chart.chartId |
INTEGER |
The ID of the chart |
requests[].findReplace |
OBJECT |
Finds and replaces data in cells over a range, sheet, or all sheets |
requests[].findReplace.sheetId |
INTEGER |
The sheet to find/replace over |
requests[].findReplace.allSheets |
BOOLEAN |
True to find/replace over all sheets |
requests[].findReplace.matchCase |
BOOLEAN |
True if the search is case sensitive |
requests[].findReplace.includeFormulas |
BOOLEAN |
True if the search should include cells with formulas. False to skip cells with formulas |
requests[].findReplace.matchEntireCell |
BOOLEAN |
True if the find value should match the entire cell |
requests[].findReplace.searchByRegex |
BOOLEAN |
True if the find value is a regex.
The regular expression and replacement should follow Java regex rules
at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
The replacement string is allowed to refer to capturing groups.
For example, if one cell has the contents |
requests[].findReplace.find |
STRING |
The value to search |
requests[].findReplace.replacement |
STRING |
The value to use as the replacement |
requests[].findReplace.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].findReplace.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].findReplace.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].findReplace.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].findReplace.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].findReplace.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].updateChartSpec |
OBJECT |
Updates a chart's specifications. (This does not move or resize a chart. To move or resize a chart, use UpdateEmbeddedObjectPositionRequest.) |
requests[].updateChartSpec.spec |
OBJECT |
The specifications of a chart |
requests[].updateChartSpec.spec.title |
STRING |
The title of the chart |
requests[].updateChartSpec.spec.altText |
STRING |
The alternative text that describes the chart. This is often used for accessibility |
requests[].updateChartSpec.spec.fontName |
STRING |
The name of the font to use by default for all chart text (e.g. title, axis labels, legend). If a font is specified for a specific part of the chart it will override this font name |
requests[].updateChartSpec.spec.maximized |
BOOLEAN |
True to make a chart fill the entire space in which it's rendered with minimum padding. False to use the default padding. (Not applicable to Geo and Org charts.) |
requests[].updateChartSpec.spec.hiddenDimensionStrategy |
ENUMERATION |
Determines how the charts will use hidden rows or columns |
requests[].updateChartSpec.spec.subtitle |
STRING |
The subtitle of the chart |
requests[].updateChartSpec.chartId |
INTEGER |
The ID of the chart to update |
requests[].textToColumns |
OBJECT |
Splits a column of text into multiple columns, based on a delimiter in each cell |
requests[].textToColumns.source |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].textToColumns.source.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.sheetId |
INTEGER |
The sheet this range is on |
requests[].textToColumns.source.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].textToColumns.delimiterType |
ENUMERATION |
The delimiter type to use |
requests[].textToColumns.delimiter |
STRING |
The delimiter to use. Used only if delimiterType is CUSTOM |
requests[].updateProtectedRange |
OBJECT |
Updates an existing protected range with the specified protectedRangeId |
requests[].updateProtectedRange.protectedRange |
OBJECT |
A protected range |
requests[].updateProtectedRange.protectedRange.description |
STRING |
The description of this protected range |
requests[].updateProtectedRange.protectedRange.namedRangeId |
STRING |
The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].updateProtectedRange.protectedRange.protectedRangeId |
INTEGER |
The ID of the protected range. This field is read-only |
requests[].updateProtectedRange.protectedRange.warningOnly |
BOOLEAN |
True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
requests[].updateProtectedRange.protectedRange.requestingUserCanEdit |
BOOLEAN |
True if the user who requested this protected range can edit the protected area. This field is read-only |
requests[].updateProtectedRange.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].addSheet |
OBJECT |
Adds a new sheet. When a sheet is added at a given index, all subsequent sheets' indexes are incremented. To add an object sheet, use AddChartRequest instead and specify EmbeddedObjectPosition.sheetId or EmbeddedObjectPosition.newSheet |
requests[].addSheet.properties |
OBJECT |
Properties of a sheet |
requests[].addSheet.properties.title |
STRING |
The name of the sheet |
requests[].addSheet.properties.index |
INTEGER |
The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
requests[].addSheet.properties.sheetId |
INTEGER |
The ID of the sheet. Must be non-negative. This field cannot be changed once set |
requests[].addSheet.properties.rightToLeft |
BOOLEAN |
True if the sheet is an RTL sheet instead of an LTR sheet |
requests[].addSheet.properties.hidden |
BOOLEAN |
True if the sheet is hidden in the UI, false if it's visible |
requests[].addSheet.properties.sheetType |
ENUMERATION |
The type of sheet. Defaults to GRID. This field cannot be changed once set |
requests[].copyPaste |
OBJECT |
Copies data from the source to the destination |
requests[].copyPaste.source |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].copyPaste.source.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.sheetId |
INTEGER |
The sheet this range is on |
requests[].copyPaste.source.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.pasteType |
ENUMERATION |
What kind of data to paste |
requests[].copyPaste.destination |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].copyPaste.destination.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.sheetId |
INTEGER |
The sheet this range is on |
requests[].copyPaste.destination.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.pasteOrientation |
ENUMERATION |
How that data should be oriented when pasting |
requests[].deleteFilterView |
OBJECT |
Deletes a particular filter view |
requests[].deleteFilterView.filterId |
INTEGER |
The ID of the filter to delete |
requests[].insertDimension |
OBJECT |
Inserts rows or columns in a sheet at a particular index |
requests[].insertDimension.inheritFromBefore |
BOOLEAN |
Whether dimension properties should be extended from the dimensions before or after the newly inserted dimensions. True to inherit from the dimensions before (in which case the start index must be greater than 0), and false to inherit from the dimensions after. For example, if row index 0 has red background and row index 1
has a green background, then inserting 2 rows at index 1 can inherit
either the green or red background. If |
requests[].insertDimension.range |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].insertDimension.range.sheetId |
INTEGER |
The sheet this span is on |
requests[].insertDimension.range.dimension |
ENUMERATION |
The dimension of the span |
requests[].insertDimension.range.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].insertDimension.range.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].deleteRange |
OBJECT |
Deletes a range of cells, shifting other cells into the deleted area |
requests[].deleteRange.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].deleteRange.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].deleteRange.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteRange.shiftDimension |
ENUMERATION |
The dimension from which deleted cells will be replaced with. If ROWS, existing cells will be shifted upward to replace the deleted cells. If COLUMNS, existing cells will be shifted left to replace the deleted cells |
requests[].deleteBanding |
OBJECT |
Removes the banded range with the given ID from the spreadsheet |
requests[].deleteBanding.bandedRangeId |
INTEGER |
The ID of the banded range to delete |
requests[].addFilterView |
OBJECT |
Adds a filter view |
requests[].addFilterView.filter |
OBJECT |
A filter view |
requests[].addFilterView.filter.namedRangeId |
STRING |
The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].addFilterView.filter.filterViewId |
INTEGER |
The ID of the filter view |
requests[].addFilterView.filter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].addFilterView.filter.title |
STRING |
The name of the filter view |
requests[].updateBorders |
OBJECT |
Updates the borders of a range. If a field is not set in the request, that means the border remains as-is. For example, with two subsequent UpdateBordersRequest:
That would result in A1:A5 having a borders of
|
requests[].updateBorders.innerVertical |
OBJECT |
A border along a cell |
requests[].updateBorders.innerVertical.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.innerVertical.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.right |
OBJECT |
A border along a cell |
requests[].updateBorders.right.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.right.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].updateBorders.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].updateBorders.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].updateBorders.innerHorizontal |
OBJECT |
A border along a cell |
requests[].updateBorders.innerHorizontal.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.innerHorizontal.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.top |
OBJECT |
A border along a cell |
requests[].updateBorders.top.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.top.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.left |
OBJECT |
A border along a cell |
requests[].updateBorders.left.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.left.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.bottom |
OBJECT |
A border along a cell |
requests[].updateBorders.bottom.style |
ENUMERATION |
The style of the border |
requests[].updateBorders.bottom.width |
INTEGER |
The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].setDataValidation |
OBJECT |
Sets a data validation rule to every cell in the range. To clear validation in a range, call this with no rule specified |
requests[].setDataValidation.rule |
OBJECT |
A data validation rule |
requests[].setDataValidation.rule.showCustomUi |
BOOLEAN |
True if the UI should be customized based on the kind of condition. If true, "List" conditions will show a dropdown |
requests[].setDataValidation.rule.strict |
BOOLEAN |
True if invalid data should be rejected |
requests[].setDataValidation.rule.inputMessage |
STRING |
A message to show the user when adding data to the cell |
requests[].setDataValidation.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].setDataValidation.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].setDataValidation.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteConditionalFormatRule |
OBJECT |
Deletes a conditional format rule at the given index. All subsequent rules' indexes are decremented |
requests[].deleteConditionalFormatRule.sheetId |
INTEGER |
The sheet the rule is being deleted from |
requests[].deleteConditionalFormatRule.index |
INTEGER |
The zero-based index of the rule to be deleted |
requests[].repeatCell |
OBJECT |
Updates all cells in the range to the values in the given Cell object. Only the fields listed in the fields field are updated; others are unchanged. If writing a cell with a formula, the formula's ranges will automatically
increment for each field in the range.
For example, if writing a cell with formula To keep the formula's ranges static, use the |
requests[].repeatCell.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].repeatCell.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].repeatCell.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].repeatCell.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].repeatCell.cell |
OBJECT |
Data about a specific cell |
requests[].repeatCell.cell.formattedValue |
STRING |
The formatted value of the cell. This is the value as it's shown to the user. This field is read-only |
requests[].repeatCell.cell.hyperlink |
STRING |
A hyperlink this cell points to, if any.
This field is read-only. (To set it, use a |
requests[].repeatCell.cell.note |
STRING |
Any note on the cell |
requests[].clearBasicFilter |
OBJECT |
Clears the basic filter, if any exists on the sheet |
requests[].clearBasicFilter.sheetId |
INTEGER |
The sheet ID on which the basic filter should be cleared |
requests[].appendDimension |
OBJECT |
Appends rows or columns to the end of a sheet |
requests[].appendDimension.dimension |
ENUMERATION |
Whether rows or columns should be appended |
requests[].appendDimension.length |
INTEGER |
The number of rows or columns to append |
requests[].appendDimension.sheetId |
INTEGER |
The sheet to append rows or columns to |
requests[].updateConditionalFormatRule |
OBJECT |
Updates a conditional format rule at the given index, or moves a conditional format rule to another index |
requests[].updateConditionalFormatRule.rule |
OBJECT |
A rule describing a conditional format |
requests[].updateConditionalFormatRule.index |
INTEGER |
The zero-based index of the rule that should be replaced or moved |
requests[].updateConditionalFormatRule.sheetId |
INTEGER |
The sheet of the rule to move. Required if new_index is set, unused otherwise |
requests[].updateConditionalFormatRule.newIndex |
INTEGER |
The zero-based new index the rule should end up at |
requests[].createDeveloperMetadata |
OBJECT |
A request to create developer metadata |
requests[].createDeveloperMetadata.developerMetadata |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
requests[].createDeveloperMetadata.developerMetadata.metadataKey |
STRING |
The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
requests[].createDeveloperMetadata.developerMetadata.metadataId |
INTEGER |
The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
requests[].createDeveloperMetadata.developerMetadata.visibility |
ENUMERATION |
The metadata visibility. Developer metadata must always have a visibility specified |
requests[].createDeveloperMetadata.developerMetadata.metadataValue |
STRING |
Data associated with the metadata's key |
requests[].insertRange |
OBJECT |
Inserts cells into a range, shifting the existing cells over or down |
requests[].insertRange.shiftDimension |
ENUMERATION |
The dimension which will be shifted when inserting cells. If ROWS, existing cells will be shifted down. If COLUMNS, existing cells will be shifted right |
requests[].insertRange.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].insertRange.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].insertRange.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].insertRange.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].insertRange.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].insertRange.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].moveDimension |
OBJECT |
Moves one or more rows or columns |
requests[].moveDimension.destinationIndex |
INTEGER |
The zero-based start index of where to move the source data to, based on the coordinates before the source data is removed from the grid. Existing data will be shifted down or right (depending on the dimension) to make room for the moved dimensions. The source dimensions are removed from the grid, so the the data may end up in a different index than specified. For example, given |
requests[].moveDimension.source |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].moveDimension.source.sheetId |
INTEGER |
The sheet this span is on |
requests[].moveDimension.source.dimension |
ENUMERATION |
The dimension of the span |
requests[].moveDimension.source.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].moveDimension.source.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].deleteDeveloperMetadata |
OBJECT |
A request to delete developer metadata |
requests[].deleteDeveloperMetadata.dataFilter |
OBJECT |
Filter that describes what data should be selected or returned from a request |
requests[].deleteDeveloperMetadata.dataFilter.a1Range |
STRING |
Selects data that matches the specified A1 range |
requests[].randomizeRange |
OBJECT |
Randomizes the order of the rows in a range |
requests[].randomizeRange.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].randomizeRange.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].randomizeRange.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].updateBanding |
OBJECT |
Updates properties of the supplied banded range |
requests[].updateBanding.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].updateBanding.bandedRange |
OBJECT |
A banded (alternating colors) range in a sheet |
requests[].updateBanding.bandedRange.bandedRangeId |
INTEGER |
The id of the banded range |
requests[].addProtectedRange |
OBJECT |
Adds a new protected range |
requests[].addProtectedRange.protectedRange |
OBJECT |
A protected range |
requests[].addProtectedRange.protectedRange.description |
STRING |
The description of this protected range |
requests[].addProtectedRange.protectedRange.namedRangeId |
STRING |
The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].addProtectedRange.protectedRange.protectedRangeId |
INTEGER |
The ID of the protected range. This field is read-only |
requests[].addProtectedRange.protectedRange.warningOnly |
BOOLEAN |
True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
requests[].addProtectedRange.protectedRange.requestingUserCanEdit |
BOOLEAN |
True if the user who requested this protected range can edit the protected area. This field is read-only |
requests[].deleteNamedRange |
OBJECT |
Removes the named range with the given ID from the spreadsheet |
requests[].deleteNamedRange.namedRangeId |
STRING |
The ID of the named range to delete |
requests[].duplicateSheet |
OBJECT |
Duplicates the contents of a sheet |
requests[].duplicateSheet.newSheetId |
INTEGER |
If set, the ID of the new sheet. If not set, an ID is chosen. If set, the ID must not conflict with any existing sheet ID. If set, it must be non-negative |
requests[].duplicateSheet.insertSheetIndex |
INTEGER |
The zero-based index where the new sheet should be inserted. The index of all sheets after this are incremented |
requests[].duplicateSheet.newSheetName |
STRING |
The name of the new sheet. If empty, a new name is chosen for you |
requests[].duplicateSheet.sourceSheetId |
INTEGER |
The sheet to duplicate |
requests[].unmergeCells |
OBJECT |
Unmerges cells in the given range |
requests[].unmergeCells.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].unmergeCells.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].unmergeCells.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteSheet |
OBJECT |
Deletes the requested sheet |
requests[].deleteSheet.sheetId |
INTEGER |
The ID of the sheet to delete |
requests[].updateEmbeddedObjectPosition |
OBJECT |
Update an embedded object's position (such as a moving or resizing a chart or image) |
requests[].updateEmbeddedObjectPosition.fields |
ANY |
The fields of OverlayPosition
that should be updated when setting a new position. Used only if
newPosition.overlayPosition
is set, in which case at least one field must
be specified. The root |
requests[].updateEmbeddedObjectPosition.objectId |
INTEGER |
The ID of the object to moved |
requests[].updateEmbeddedObjectPosition.newPosition |
OBJECT |
The position of an embedded object such as a chart |
requests[].updateEmbeddedObjectPosition.newPosition.newSheet |
BOOLEAN |
If true, the embedded object is put on a new sheet whose ID is chosen for you. Used only when writing |
requests[].updateEmbeddedObjectPosition.newPosition.sheetId |
INTEGER |
The sheet this is on. Set only if the embedded object is on its own sheet. Must be non-negative |
requests[].addDimensionGroup |
OBJECT |
Creates a group over the specified range. If the requested range is a superset of the range of an existing group G, then the depth of G is incremented and this new group G' has the depth of that group. For example, a group [C:D, depth 1] + [B:E] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range is a subset of the range of an existing group G, then the depth of the new group G' becomes one greater than the depth of G. For example, a group [B:E, depth 1] + [C:D] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range starts before and ends within, or starts within and ends after, the range of an existing group G, then the range of the existing group G becomes the union of the ranges, and the new group G' has depth one greater than the depth of G and range as the intersection of the ranges. For example, a group [B:D, depth 1] + [C:E] results in groups [B:E, depth 1] and [C:D, depth 2] |
requests[].addDimensionGroup.range |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].addDimensionGroup.range.sheetId |
INTEGER |
The sheet this span is on |
requests[].addDimensionGroup.range.dimension |
ENUMERATION |
The dimension of the span |
requests[].addDimensionGroup.range.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].addDimensionGroup.range.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].updateDeveloperMetadata |
OBJECT |
A request to update properties of developer metadata. Updates the properties of the developer metadata selected by the filters to the values provided in the DeveloperMetadata resource. Callers must specify the properties they wish to update in the fields parameter, as well as specify at least one DataFilter matching the metadata they wish to update |
requests[].updateDeveloperMetadata.dataFilters[] |
OBJECT |
Filter that describes what data should be selected or returned from a request |
requests[].updateDeveloperMetadata.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].updateDeveloperMetadata.developerMetadata |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
requests[].updateDeveloperMetadata.developerMetadata.metadataKey |
STRING |
The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
requests[].updateDeveloperMetadata.developerMetadata.metadataId |
INTEGER |
The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
requests[].updateDeveloperMetadata.developerMetadata.visibility |
ENUMERATION |
The metadata visibility. Developer metadata must always have a visibility specified |
requests[].updateDeveloperMetadata.developerMetadata.metadataValue |
STRING |
Data associated with the metadata's key |
requests[].updateDimensionProperties |
OBJECT |
Updates properties of dimensions within the specified range |
requests[].updateDimensionProperties.range |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].updateDimensionProperties.range.sheetId |
INTEGER |
The sheet this span is on |
requests[].updateDimensionProperties.range.dimension |
ENUMERATION |
The dimension of the span |
requests[].updateDimensionProperties.range.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].updateDimensionProperties.range.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].updateDimensionProperties.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].updateDimensionProperties.properties |
OBJECT |
Properties about a dimension |
requests[].updateDimensionProperties.properties.pixelSize |
INTEGER |
The height (if a row) or width (if a column) of the dimension in pixels |
requests[].updateDimensionProperties.properties.hiddenByFilter |
BOOLEAN |
True if this dimension is being filtered. This field is read-only |
requests[].updateDimensionProperties.properties.hiddenByUser |
BOOLEAN |
True if this dimension is explicitly hidden |
requests[].updateDimensionGroup |
OBJECT |
Updates the state of the specified group |
requests[].updateDimensionGroup.dimensionGroup |
OBJECT |
A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
requests[].updateDimensionGroup.dimensionGroup.collapsed |
BOOLEAN |
This field is true if this group is collapsed. A collapsed group remains collapsed if an overlapping group at a shallower depth is expanded. A true value does not imply that all dimensions within the group are hidden, since a dimension's visibility can change independently from this group property. However, when this property is updated, all dimensions within it are set to hidden if this field is true, or set to visible if this field is false |
requests[].updateDimensionGroup.dimensionGroup.depth |
INTEGER |
The depth of the group, representing how many groups have a range that wholly contains the range of this group |
requests[].updateDimensionGroup.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].pasteData |
OBJECT |
Inserts data into the spreadsheet starting at the specified coordinate |
requests[].pasteData.coordinate |
OBJECT |
A coordinate in a sheet. All indexes are zero-based |
requests[].pasteData.coordinate.rowIndex |
INTEGER |
The row index of the coordinate |
requests[].pasteData.coordinate.columnIndex |
INTEGER |
The column index of the coordinate |
requests[].pasteData.coordinate.sheetId |
INTEGER |
The sheet this coordinate is on |
requests[].pasteData.data |
STRING |
The data to insert |
requests[].pasteData.delimiter |
STRING |
The delimiter in the data |
requests[].pasteData.type |
ENUMERATION |
How the data should be pasted |
requests[].pasteData.html |
BOOLEAN |
True if the data is HTML |
requests[].setBasicFilter |
OBJECT |
Sets the basic filter associated with a sheet |
requests[].setBasicFilter.filter |
OBJECT |
The default filter associated with a sheet |
requests[].setBasicFilter.filter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].addConditionalFormatRule |
OBJECT |
Adds a new conditional format rule at the given index. All subsequent rules' indexes are incremented |
requests[].addConditionalFormatRule.index |
INTEGER |
The zero-based index where the rule should be inserted |
requests[].addConditionalFormatRule.rule |
OBJECT |
A rule describing a conditional format |
requests[].updateCells |
OBJECT |
Updates all cells in a range with new data |
requests[].updateCells.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].updateCells.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].updateCells.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].updateCells.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].updateCells.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].updateCells.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].updateCells.rows[] |
OBJECT |
Data about each cell in a row |
requests[].updateCells.fields |
ANY |
The fields of CellData that should be updated.
At least one field must be specified.
The root is the CellData; 'row.values.' should not be specified.
A single |
requests[].updateCells.start |
OBJECT |
A coordinate in a sheet. All indexes are zero-based |
requests[].updateCells.start.rowIndex |
INTEGER |
The row index of the coordinate |
requests[].updateCells.start.columnIndex |
INTEGER |
The column index of the coordinate |
requests[].updateCells.start.sheetId |
INTEGER |
The sheet this coordinate is on |
requests[].addNamedRange |
OBJECT |
Adds a named range to the spreadsheet |
requests[].addNamedRange.namedRange |
OBJECT |
A named range |
requests[].addNamedRange.namedRange.namedRangeId |
STRING |
The ID of the named range |
requests[].addNamedRange.namedRange.name |
STRING |
The name of the named range |
requests[].updateSpreadsheetProperties |
OBJECT |
Updates properties of a spreadsheet |
requests[].updateSpreadsheetProperties.properties |
OBJECT |
Properties of a spreadsheet |
requests[].updateSpreadsheetProperties.properties.autoRecalc |
ENUMERATION |
The amount of time to wait before volatile functions are recalculated |
requests[].updateSpreadsheetProperties.properties.title |
STRING |
The title of the spreadsheet |
requests[].updateSpreadsheetProperties.properties.timeZone |
STRING |
The time zone of the spreadsheet, in CLDR format such as
|
requests[].updateSpreadsheetProperties.properties.locale |
STRING |
The locale of the spreadsheet in one of the following formats:
Note: when updating this field, not all locales/languages are supported |
requests[].updateSpreadsheetProperties.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root 'properties' is implied and should not be specified.
A single |
requests[].deleteEmbeddedObject |
OBJECT |
Deletes the embedded object with the given ID |
requests[].deleteEmbeddedObject.objectId |
INTEGER |
The ID of the embedded object to delete |
requests[].updateFilterView |
OBJECT |
Updates properties of the filter view |
requests[].updateFilterView.filter |
OBJECT |
A filter view |
requests[].updateFilterView.filter.namedRangeId |
STRING |
The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].updateFilterView.filter.filterViewId |
INTEGER |
The ID of the filter view |
requests[].updateFilterView.filter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].updateFilterView.filter.title |
STRING |
The name of the filter view |
requests[].updateFilterView.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].addBanding |
OBJECT |
Adds a new banded range to the spreadsheet |
requests[].addBanding.bandedRange |
OBJECT |
A banded (alternating colors) range in a sheet |
requests[].addBanding.bandedRange.bandedRangeId |
INTEGER |
The id of the banded range |
requests[].appendCells |
OBJECT |
Adds new cells after the last row with data in a sheet, inserting new rows into the sheet if necessary |
requests[].appendCells.sheetId |
INTEGER |
The sheet ID to append the data to |
requests[].appendCells.rows[] |
OBJECT |
Data about each cell in a row |
requests[].appendCells.fields |
ANY |
The fields of CellData that should be updated.
At least one field must be specified.
The root is the CellData; 'row.values.' should not be specified.
A single |
requests[].autoResizeDimensions |
OBJECT |
Automatically resizes one or more dimensions based on the contents of the cells in that dimension |
requests[].autoResizeDimensions.dimensions |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].autoResizeDimensions.dimensions.sheetId |
INTEGER |
The sheet this span is on |
requests[].autoResizeDimensions.dimensions.dimension |
ENUMERATION |
The dimension of the span |
requests[].autoResizeDimensions.dimensions.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].autoResizeDimensions.dimensions.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
requests[].cutPaste |
OBJECT |
Moves data from the source to the destination |
requests[].cutPaste.source |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].cutPaste.source.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.sheetId |
INTEGER |
The sheet this range is on |
requests[].cutPaste.source.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].cutPaste.pasteType |
ENUMERATION |
What kind of data to paste. All the source data will be cut, regardless of what is pasted |
requests[].cutPaste.destination |
OBJECT |
A coordinate in a sheet. All indexes are zero-based |
requests[].cutPaste.destination.rowIndex |
INTEGER |
The row index of the coordinate |
requests[].cutPaste.destination.columnIndex |
INTEGER |
The column index of the coordinate |
requests[].cutPaste.destination.sheetId |
INTEGER |
The sheet this coordinate is on |
requests[].mergeCells |
OBJECT |
Merges all cells in the range |
requests[].mergeCells.mergeType |
ENUMERATION |
How the cells should be merged |
requests[].mergeCells.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].mergeCells.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].mergeCells.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].updateNamedRange |
OBJECT |
Updates properties of the named range with the specified namedRangeId |
requests[].updateNamedRange.namedRange |
OBJECT |
A named range |
requests[].updateNamedRange.namedRange.namedRangeId |
STRING |
The ID of the named range |
requests[].updateNamedRange.namedRange.name |
STRING |
The name of the named range |
requests[].updateNamedRange.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].updateSheetProperties |
OBJECT |
Updates properties of the sheet with the specified sheetId |
requests[].updateSheetProperties.fields |
ANY |
The fields that should be updated. At least one field must be specified.
The root |
requests[].updateSheetProperties.properties |
OBJECT |
Properties of a sheet |
requests[].updateSheetProperties.properties.title |
STRING |
The name of the sheet |
requests[].updateSheetProperties.properties.index |
INTEGER |
The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
requests[].updateSheetProperties.properties.sheetId |
INTEGER |
The ID of the sheet. Must be non-negative. This field cannot be changed once set |
requests[].updateSheetProperties.properties.rightToLeft |
BOOLEAN |
True if the sheet is an RTL sheet instead of an LTR sheet |
requests[].updateSheetProperties.properties.hidden |
BOOLEAN |
True if the sheet is hidden in the UI, false if it's visible |
requests[].updateSheetProperties.properties.sheetType |
ENUMERATION |
The type of sheet. Defaults to GRID. This field cannot be changed once set |
requests[].autoFill |
OBJECT |
Fills in more data based on existing data |
requests[].autoFill.useAlternateSeries |
BOOLEAN |
True if we should generate data with the "alternate" series. This differs based on the type and amount of source data |
requests[].autoFill.sourceAndDestination |
OBJECT |
A combination of a source range and how to extend that source |
requests[].autoFill.sourceAndDestination.fillLength |
INTEGER |
The number of rows or columns that data should be filled into. Positive numbers expand beyond the last row or last column of the source. Negative numbers expand before the first row or first column of the source |
requests[].autoFill.sourceAndDestination.dimension |
ENUMERATION |
The dimension that data should be filled into |
requests[].autoFill.range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].autoFill.range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
requests[].autoFill.range.sheetId |
INTEGER |
The sheet this range is on |
requests[].autoFill.range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
requests[].autoFill.range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
requests[].autoFill.range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteDimension |
OBJECT |
Deletes the dimensions from the sheet |
requests[].deleteDimension.range |
OBJECT |
A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].deleteDimension.range.sheetId |
INTEGER |
The sheet this span is on |
requests[].deleteDimension.range.dimension |
ENUMERATION |
The dimension of the span |
requests[].deleteDimension.range.startIndex |
INTEGER |
The start (inclusive) of the span, or not set if unbounded |
requests[].deleteDimension.range.endIndex |
INTEGER |
The end (exclusive) of the span, or not set if unbounded |
= Parameter name
= Format
spreadsheetId STRING Required The spreadsheet to apply the updates to |
includeSpreadsheetInResponse BOOLEAN Determines if the update response should include the spreadsheet resource |
responseRanges[] STRING |
responseIncludeGridData BOOLEAN True if grid data should be returned. Meaningful only if if include_spreadsheet_in_response is 'true'. This parameter is ignored if a field mask was set in the request |
requests[] OBJECT A single kind of update to apply to a spreadsheet |
requests[].sortRange OBJECT Sorts data in rows based on a sort order per column |
requests[].sortRange.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].sortRange.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].sortRange.range.sheetId INTEGER The sheet this range is on |
requests[].sortRange.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].sortRange.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].sortRange.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].sortRange.sortSpecs[] OBJECT A sort order associated with a specific column or row |
requests[].deleteProtectedRange OBJECT Deletes the protected range with the given ID |
requests[].deleteProtectedRange.protectedRangeId INTEGER The ID of the protected range to delete |
requests[].deleteDimensionGroup OBJECT Deletes a group over the specified range by decrementing the depth of the dimensions in the range. For example, assume the sheet has a depth-1 group over B:E and a depth-2 group over C:D. Deleting a group over D:E leaves the sheet with a depth-1 group over B:D and a depth-2 group over C:C |
requests[].deleteDimensionGroup.range OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].deleteDimensionGroup.range.sheetId INTEGER The sheet this span is on |
requests[].deleteDimensionGroup.range.dimension ENUMERATION The dimension of the span |
requests[].deleteDimensionGroup.range.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].deleteDimensionGroup.range.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].duplicateFilterView OBJECT Duplicates a particular filter view |
requests[].duplicateFilterView.filterId INTEGER The ID of the filter being duplicated |
requests[].addChart OBJECT Adds a chart to a sheet in the spreadsheet |
requests[].addChart.chart OBJECT A chart embedded in a sheet |
requests[].addChart.chart.chartId INTEGER The ID of the chart |
requests[].findReplace OBJECT Finds and replaces data in cells over a range, sheet, or all sheets |
requests[].findReplace.sheetId INTEGER The sheet to find/replace over |
requests[].findReplace.allSheets BOOLEAN True to find/replace over all sheets |
requests[].findReplace.matchCase BOOLEAN True if the search is case sensitive |
requests[].findReplace.includeFormulas BOOLEAN True if the search should include cells with formulas. False to skip cells with formulas |
requests[].findReplace.matchEntireCell BOOLEAN True if the find value should match the entire cell |
requests[].findReplace.searchByRegex BOOLEAN True if the find value is a regex.
The regular expression and replacement should follow Java regex rules
at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
The replacement string is allowed to refer to capturing groups.
For example, if one cell has the contents |
requests[].findReplace.find STRING The value to search |
requests[].findReplace.replacement STRING The value to use as the replacement |
requests[].findReplace.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].findReplace.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].findReplace.range.sheetId INTEGER The sheet this range is on |
requests[].findReplace.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].findReplace.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].findReplace.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].updateChartSpec OBJECT Updates a chart's specifications. (This does not move or resize a chart. To move or resize a chart, use UpdateEmbeddedObjectPositionRequest.) |
requests[].updateChartSpec.spec OBJECT The specifications of a chart |
requests[].updateChartSpec.spec.title STRING The title of the chart |
requests[].updateChartSpec.spec.altText STRING The alternative text that describes the chart. This is often used for accessibility |
requests[].updateChartSpec.spec.fontName STRING The name of the font to use by default for all chart text (e.g. title, axis labels, legend). If a font is specified for a specific part of the chart it will override this font name |
requests[].updateChartSpec.spec.maximized BOOLEAN True to make a chart fill the entire space in which it's rendered with minimum padding. False to use the default padding. (Not applicable to Geo and Org charts.) |
requests[].updateChartSpec.spec.hiddenDimensionStrategy ENUMERATION Determines how the charts will use hidden rows or columns |
requests[].updateChartSpec.spec.subtitle STRING The subtitle of the chart |
requests[].updateChartSpec.chartId INTEGER The ID of the chart to update |
requests[].textToColumns OBJECT Splits a column of text into multiple columns, based on a delimiter in each cell |
requests[].textToColumns.source OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].textToColumns.source.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.sheetId INTEGER The sheet this range is on |
requests[].textToColumns.source.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].textToColumns.source.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].textToColumns.delimiterType ENUMERATION The delimiter type to use |
requests[].textToColumns.delimiter STRING The delimiter to use. Used only if delimiterType is CUSTOM |
requests[].updateProtectedRange OBJECT Updates an existing protected range with the specified protectedRangeId |
requests[].updateProtectedRange.protectedRange OBJECT A protected range |
requests[].updateProtectedRange.protectedRange.description STRING The description of this protected range |
requests[].updateProtectedRange.protectedRange.namedRangeId STRING The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].updateProtectedRange.protectedRange.protectedRangeId INTEGER The ID of the protected range. This field is read-only |
requests[].updateProtectedRange.protectedRange.warningOnly BOOLEAN True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
requests[].updateProtectedRange.protectedRange.requestingUserCanEdit BOOLEAN True if the user who requested this protected range can edit the protected area. This field is read-only |
requests[].updateProtectedRange.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].addSheet OBJECT Adds a new sheet. When a sheet is added at a given index, all subsequent sheets' indexes are incremented. To add an object sheet, use AddChartRequest instead and specify EmbeddedObjectPosition.sheetId or EmbeddedObjectPosition.newSheet |
requests[].addSheet.properties OBJECT Properties of a sheet |
requests[].addSheet.properties.title STRING The name of the sheet |
requests[].addSheet.properties.index INTEGER The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
requests[].addSheet.properties.sheetId INTEGER The ID of the sheet. Must be non-negative. This field cannot be changed once set |
requests[].addSheet.properties.rightToLeft BOOLEAN True if the sheet is an RTL sheet instead of an LTR sheet |
requests[].addSheet.properties.hidden BOOLEAN True if the sheet is hidden in the UI, false if it's visible |
requests[].addSheet.properties.sheetType ENUMERATION The type of sheet. Defaults to GRID. This field cannot be changed once set |
requests[].copyPaste OBJECT Copies data from the source to the destination |
requests[].copyPaste.source OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].copyPaste.source.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.sheetId INTEGER The sheet this range is on |
requests[].copyPaste.source.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.source.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.pasteType ENUMERATION What kind of data to paste |
requests[].copyPaste.destination OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].copyPaste.destination.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.sheetId INTEGER The sheet this range is on |
requests[].copyPaste.destination.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].copyPaste.destination.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].copyPaste.pasteOrientation ENUMERATION How that data should be oriented when pasting |
requests[].deleteFilterView OBJECT Deletes a particular filter view |
requests[].deleteFilterView.filterId INTEGER The ID of the filter to delete |
requests[].insertDimension OBJECT Inserts rows or columns in a sheet at a particular index |
requests[].insertDimension.inheritFromBefore BOOLEAN Whether dimension properties should be extended from the dimensions before or after the newly inserted dimensions. True to inherit from the dimensions before (in which case the start index must be greater than 0), and false to inherit from the dimensions after. For example, if row index 0 has red background and row index 1
has a green background, then inserting 2 rows at index 1 can inherit
either the green or red background. If |
requests[].insertDimension.range OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].insertDimension.range.sheetId INTEGER The sheet this span is on |
requests[].insertDimension.range.dimension ENUMERATION The dimension of the span |
requests[].insertDimension.range.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].insertDimension.range.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].deleteRange OBJECT Deletes a range of cells, shifting other cells into the deleted area |
requests[].deleteRange.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].deleteRange.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.sheetId INTEGER The sheet this range is on |
requests[].deleteRange.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].deleteRange.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteRange.shiftDimension ENUMERATION The dimension from which deleted cells will be replaced with. If ROWS, existing cells will be shifted upward to replace the deleted cells. If COLUMNS, existing cells will be shifted left to replace the deleted cells |
requests[].deleteBanding OBJECT Removes the banded range with the given ID from the spreadsheet |
requests[].deleteBanding.bandedRangeId INTEGER The ID of the banded range to delete |
requests[].addFilterView OBJECT Adds a filter view |
requests[].addFilterView.filter OBJECT A filter view |
requests[].addFilterView.filter.namedRangeId STRING The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].addFilterView.filter.filterViewId INTEGER The ID of the filter view |
requests[].addFilterView.filter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].addFilterView.filter.title STRING The name of the filter view |
requests[].updateBorders OBJECT Updates the borders of a range. If a field is not set in the request, that means the border remains as-is. For example, with two subsequent UpdateBordersRequest:
That would result in A1:A5 having a borders of
|
requests[].updateBorders.innerVertical OBJECT A border along a cell |
requests[].updateBorders.innerVertical.style ENUMERATION The style of the border |
requests[].updateBorders.innerVertical.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.right OBJECT A border along a cell |
requests[].updateBorders.right.style ENUMERATION The style of the border |
requests[].updateBorders.right.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].updateBorders.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.sheetId INTEGER The sheet this range is on |
requests[].updateBorders.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].updateBorders.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].updateBorders.innerHorizontal OBJECT A border along a cell |
requests[].updateBorders.innerHorizontal.style ENUMERATION The style of the border |
requests[].updateBorders.innerHorizontal.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.top OBJECT A border along a cell |
requests[].updateBorders.top.style ENUMERATION The style of the border |
requests[].updateBorders.top.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.left OBJECT A border along a cell |
requests[].updateBorders.left.style ENUMERATION The style of the border |
requests[].updateBorders.left.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].updateBorders.bottom OBJECT A border along a cell |
requests[].updateBorders.bottom.style ENUMERATION The style of the border |
requests[].updateBorders.bottom.width INTEGER The width of the border, in pixels. Deprecated; the width is determined by the "style" field |
requests[].setDataValidation OBJECT Sets a data validation rule to every cell in the range. To clear validation in a range, call this with no rule specified |
requests[].setDataValidation.rule OBJECT A data validation rule |
requests[].setDataValidation.rule.showCustomUi BOOLEAN True if the UI should be customized based on the kind of condition. If true, "List" conditions will show a dropdown |
requests[].setDataValidation.rule.strict BOOLEAN True if invalid data should be rejected |
requests[].setDataValidation.rule.inputMessage STRING A message to show the user when adding data to the cell |
requests[].setDataValidation.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].setDataValidation.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.sheetId INTEGER The sheet this range is on |
requests[].setDataValidation.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].setDataValidation.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteConditionalFormatRule OBJECT Deletes a conditional format rule at the given index. All subsequent rules' indexes are decremented |
requests[].deleteConditionalFormatRule.sheetId INTEGER The sheet the rule is being deleted from |
requests[].deleteConditionalFormatRule.index INTEGER The zero-based index of the rule to be deleted |
requests[].repeatCell OBJECT Updates all cells in the range to the values in the given Cell object. Only the fields listed in the fields field are updated; others are unchanged. If writing a cell with a formula, the formula's ranges will automatically
increment for each field in the range.
For example, if writing a cell with formula To keep the formula's ranges static, use the |
requests[].repeatCell.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].repeatCell.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.sheetId INTEGER The sheet this range is on |
requests[].repeatCell.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].repeatCell.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].repeatCell.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].repeatCell.cell OBJECT Data about a specific cell |
requests[].repeatCell.cell.formattedValue STRING The formatted value of the cell. This is the value as it's shown to the user. This field is read-only |
requests[].repeatCell.cell.hyperlink STRING A hyperlink this cell points to, if any.
This field is read-only. (To set it, use a |
requests[].repeatCell.cell.note STRING Any note on the cell |
requests[].clearBasicFilter OBJECT Clears the basic filter, if any exists on the sheet |
requests[].clearBasicFilter.sheetId INTEGER The sheet ID on which the basic filter should be cleared |
requests[].appendDimension OBJECT Appends rows or columns to the end of a sheet |
requests[].appendDimension.dimension ENUMERATION Whether rows or columns should be appended |
requests[].appendDimension.length INTEGER The number of rows or columns to append |
requests[].appendDimension.sheetId INTEGER The sheet to append rows or columns to |
requests[].updateConditionalFormatRule OBJECT Updates a conditional format rule at the given index, or moves a conditional format rule to another index |
requests[].updateConditionalFormatRule.rule OBJECT A rule describing a conditional format |
requests[].updateConditionalFormatRule.index INTEGER The zero-based index of the rule that should be replaced or moved |
requests[].updateConditionalFormatRule.sheetId INTEGER The sheet of the rule to move. Required if new_index is set, unused otherwise |
requests[].updateConditionalFormatRule.newIndex INTEGER The zero-based new index the rule should end up at |
requests[].createDeveloperMetadata OBJECT A request to create developer metadata |
requests[].createDeveloperMetadata.developerMetadata OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
requests[].createDeveloperMetadata.developerMetadata.metadataKey STRING The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
requests[].createDeveloperMetadata.developerMetadata.metadataId INTEGER The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
requests[].createDeveloperMetadata.developerMetadata.visibility ENUMERATION The metadata visibility. Developer metadata must always have a visibility specified |
requests[].createDeveloperMetadata.developerMetadata.metadataValue STRING Data associated with the metadata's key |
requests[].insertRange OBJECT Inserts cells into a range, shifting the existing cells over or down |
requests[].insertRange.shiftDimension ENUMERATION The dimension which will be shifted when inserting cells. If ROWS, existing cells will be shifted down. If COLUMNS, existing cells will be shifted right |
requests[].insertRange.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].insertRange.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].insertRange.range.sheetId INTEGER The sheet this range is on |
requests[].insertRange.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].insertRange.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].insertRange.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].moveDimension OBJECT Moves one or more rows or columns |
requests[].moveDimension.destinationIndex INTEGER The zero-based start index of where to move the source data to, based on the coordinates before the source data is removed from the grid. Existing data will be shifted down or right (depending on the dimension) to make room for the moved dimensions. The source dimensions are removed from the grid, so the the data may end up in a different index than specified. For example, given |
requests[].moveDimension.source OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].moveDimension.source.sheetId INTEGER The sheet this span is on |
requests[].moveDimension.source.dimension ENUMERATION The dimension of the span |
requests[].moveDimension.source.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].moveDimension.source.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].deleteDeveloperMetadata OBJECT A request to delete developer metadata |
requests[].deleteDeveloperMetadata.dataFilter OBJECT Filter that describes what data should be selected or returned from a request |
requests[].deleteDeveloperMetadata.dataFilter.a1Range STRING Selects data that matches the specified A1 range |
requests[].randomizeRange OBJECT Randomizes the order of the rows in a range |
requests[].randomizeRange.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].randomizeRange.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.sheetId INTEGER The sheet this range is on |
requests[].randomizeRange.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].randomizeRange.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].updateBanding OBJECT Updates properties of the supplied banded range |
requests[].updateBanding.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].updateBanding.bandedRange OBJECT A banded (alternating colors) range in a sheet |
requests[].updateBanding.bandedRange.bandedRangeId INTEGER The id of the banded range |
requests[].addProtectedRange OBJECT Adds a new protected range |
requests[].addProtectedRange.protectedRange OBJECT A protected range |
requests[].addProtectedRange.protectedRange.description STRING The description of this protected range |
requests[].addProtectedRange.protectedRange.namedRangeId STRING The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].addProtectedRange.protectedRange.protectedRangeId INTEGER The ID of the protected range. This field is read-only |
requests[].addProtectedRange.protectedRange.warningOnly BOOLEAN True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
requests[].addProtectedRange.protectedRange.requestingUserCanEdit BOOLEAN True if the user who requested this protected range can edit the protected area. This field is read-only |
requests[].deleteNamedRange OBJECT Removes the named range with the given ID from the spreadsheet |
requests[].deleteNamedRange.namedRangeId STRING The ID of the named range to delete |
requests[].duplicateSheet OBJECT Duplicates the contents of a sheet |
requests[].duplicateSheet.newSheetId INTEGER If set, the ID of the new sheet. If not set, an ID is chosen. If set, the ID must not conflict with any existing sheet ID. If set, it must be non-negative |
requests[].duplicateSheet.insertSheetIndex INTEGER The zero-based index where the new sheet should be inserted. The index of all sheets after this are incremented |
requests[].duplicateSheet.newSheetName STRING The name of the new sheet. If empty, a new name is chosen for you |
requests[].duplicateSheet.sourceSheetId INTEGER The sheet to duplicate |
requests[].unmergeCells OBJECT Unmerges cells in the given range |
requests[].unmergeCells.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].unmergeCells.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.sheetId INTEGER The sheet this range is on |
requests[].unmergeCells.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].unmergeCells.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteSheet OBJECT Deletes the requested sheet |
requests[].deleteSheet.sheetId INTEGER The ID of the sheet to delete |
requests[].updateEmbeddedObjectPosition OBJECT Update an embedded object's position (such as a moving or resizing a chart or image) |
requests[].updateEmbeddedObjectPosition.fields ANY The fields of OverlayPosition
that should be updated when setting a new position. Used only if
newPosition.overlayPosition
is set, in which case at least one field must
be specified. The root |
requests[].updateEmbeddedObjectPosition.objectId INTEGER The ID of the object to moved |
requests[].updateEmbeddedObjectPosition.newPosition OBJECT The position of an embedded object such as a chart |
requests[].updateEmbeddedObjectPosition.newPosition.newSheet BOOLEAN If true, the embedded object is put on a new sheet whose ID is chosen for you. Used only when writing |
requests[].updateEmbeddedObjectPosition.newPosition.sheetId INTEGER The sheet this is on. Set only if the embedded object is on its own sheet. Must be non-negative |
requests[].addDimensionGroup OBJECT Creates a group over the specified range. If the requested range is a superset of the range of an existing group G, then the depth of G is incremented and this new group G' has the depth of that group. For example, a group [C:D, depth 1] + [B:E] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range is a subset of the range of an existing group G, then the depth of the new group G' becomes one greater than the depth of G. For example, a group [B:E, depth 1] + [C:D] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range starts before and ends within, or starts within and ends after, the range of an existing group G, then the range of the existing group G becomes the union of the ranges, and the new group G' has depth one greater than the depth of G and range as the intersection of the ranges. For example, a group [B:D, depth 1] + [C:E] results in groups [B:E, depth 1] and [C:D, depth 2] |
requests[].addDimensionGroup.range OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].addDimensionGroup.range.sheetId INTEGER The sheet this span is on |
requests[].addDimensionGroup.range.dimension ENUMERATION The dimension of the span |
requests[].addDimensionGroup.range.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].addDimensionGroup.range.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].updateDeveloperMetadata OBJECT A request to update properties of developer metadata. Updates the properties of the developer metadata selected by the filters to the values provided in the DeveloperMetadata resource. Callers must specify the properties they wish to update in the fields parameter, as well as specify at least one DataFilter matching the metadata they wish to update |
requests[].updateDeveloperMetadata.dataFilters[] OBJECT Filter that describes what data should be selected or returned from a request |
requests[].updateDeveloperMetadata.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].updateDeveloperMetadata.developerMetadata OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
requests[].updateDeveloperMetadata.developerMetadata.metadataKey STRING The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
requests[].updateDeveloperMetadata.developerMetadata.metadataId INTEGER The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
requests[].updateDeveloperMetadata.developerMetadata.visibility ENUMERATION The metadata visibility. Developer metadata must always have a visibility specified |
requests[].updateDeveloperMetadata.developerMetadata.metadataValue STRING Data associated with the metadata's key |
requests[].updateDimensionProperties OBJECT Updates properties of dimensions within the specified range |
requests[].updateDimensionProperties.range OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].updateDimensionProperties.range.sheetId INTEGER The sheet this span is on |
requests[].updateDimensionProperties.range.dimension ENUMERATION The dimension of the span |
requests[].updateDimensionProperties.range.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].updateDimensionProperties.range.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].updateDimensionProperties.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].updateDimensionProperties.properties OBJECT Properties about a dimension |
requests[].updateDimensionProperties.properties.pixelSize INTEGER The height (if a row) or width (if a column) of the dimension in pixels |
requests[].updateDimensionProperties.properties.hiddenByFilter BOOLEAN True if this dimension is being filtered. This field is read-only |
requests[].updateDimensionProperties.properties.hiddenByUser BOOLEAN True if this dimension is explicitly hidden |
requests[].updateDimensionGroup OBJECT Updates the state of the specified group |
requests[].updateDimensionGroup.dimensionGroup OBJECT A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
requests[].updateDimensionGroup.dimensionGroup.collapsed BOOLEAN This field is true if this group is collapsed. A collapsed group remains collapsed if an overlapping group at a shallower depth is expanded. A true value does not imply that all dimensions within the group are hidden, since a dimension's visibility can change independently from this group property. However, when this property is updated, all dimensions within it are set to hidden if this field is true, or set to visible if this field is false |
requests[].updateDimensionGroup.dimensionGroup.depth INTEGER The depth of the group, representing how many groups have a range that wholly contains the range of this group |
requests[].updateDimensionGroup.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].pasteData OBJECT Inserts data into the spreadsheet starting at the specified coordinate |
requests[].pasteData.coordinate OBJECT A coordinate in a sheet. All indexes are zero-based |
requests[].pasteData.coordinate.rowIndex INTEGER The row index of the coordinate |
requests[].pasteData.coordinate.columnIndex INTEGER The column index of the coordinate |
requests[].pasteData.coordinate.sheetId INTEGER The sheet this coordinate is on |
requests[].pasteData.data STRING The data to insert |
requests[].pasteData.delimiter STRING The delimiter in the data |
requests[].pasteData.type ENUMERATION How the data should be pasted |
requests[].pasteData.html BOOLEAN True if the data is HTML |
requests[].setBasicFilter OBJECT Sets the basic filter associated with a sheet |
requests[].setBasicFilter.filter OBJECT The default filter associated with a sheet |
requests[].setBasicFilter.filter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].addConditionalFormatRule OBJECT Adds a new conditional format rule at the given index. All subsequent rules' indexes are incremented |
requests[].addConditionalFormatRule.index INTEGER The zero-based index where the rule should be inserted |
requests[].addConditionalFormatRule.rule OBJECT A rule describing a conditional format |
requests[].updateCells OBJECT Updates all cells in a range with new data |
requests[].updateCells.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].updateCells.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].updateCells.range.sheetId INTEGER The sheet this range is on |
requests[].updateCells.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].updateCells.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].updateCells.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].updateCells.rows[] OBJECT Data about each cell in a row |
requests[].updateCells.fields ANY The fields of CellData that should be updated.
At least one field must be specified.
The root is the CellData; 'row.values.' should not be specified.
A single |
requests[].updateCells.start OBJECT A coordinate in a sheet. All indexes are zero-based |
requests[].updateCells.start.rowIndex INTEGER The row index of the coordinate |
requests[].updateCells.start.columnIndex INTEGER The column index of the coordinate |
requests[].updateCells.start.sheetId INTEGER The sheet this coordinate is on |
requests[].addNamedRange OBJECT Adds a named range to the spreadsheet |
requests[].addNamedRange.namedRange OBJECT A named range |
requests[].addNamedRange.namedRange.namedRangeId STRING The ID of the named range |
requests[].addNamedRange.namedRange.name STRING The name of the named range |
requests[].updateSpreadsheetProperties OBJECT Updates properties of a spreadsheet |
requests[].updateSpreadsheetProperties.properties OBJECT Properties of a spreadsheet |
requests[].updateSpreadsheetProperties.properties.autoRecalc ENUMERATION The amount of time to wait before volatile functions are recalculated |
requests[].updateSpreadsheetProperties.properties.title STRING The title of the spreadsheet |
requests[].updateSpreadsheetProperties.properties.timeZone STRING The time zone of the spreadsheet, in CLDR format such as
|
requests[].updateSpreadsheetProperties.properties.locale STRING The locale of the spreadsheet in one of the following formats:
Note: when updating this field, not all locales/languages are supported |
requests[].updateSpreadsheetProperties.fields ANY The fields that should be updated. At least one field must be specified.
The root 'properties' is implied and should not be specified.
A single |
requests[].deleteEmbeddedObject OBJECT Deletes the embedded object with the given ID |
requests[].deleteEmbeddedObject.objectId INTEGER The ID of the embedded object to delete |
requests[].updateFilterView OBJECT Updates properties of the filter view |
requests[].updateFilterView.filter OBJECT A filter view |
requests[].updateFilterView.filter.namedRangeId STRING The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
requests[].updateFilterView.filter.filterViewId INTEGER The ID of the filter view |
requests[].updateFilterView.filter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
requests[].updateFilterView.filter.title STRING The name of the filter view |
requests[].updateFilterView.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].addBanding OBJECT Adds a new banded range to the spreadsheet |
requests[].addBanding.bandedRange OBJECT A banded (alternating colors) range in a sheet |
requests[].addBanding.bandedRange.bandedRangeId INTEGER The id of the banded range |
requests[].appendCells OBJECT Adds new cells after the last row with data in a sheet, inserting new rows into the sheet if necessary |
requests[].appendCells.sheetId INTEGER The sheet ID to append the data to |
requests[].appendCells.rows[] OBJECT Data about each cell in a row |
requests[].appendCells.fields ANY The fields of CellData that should be updated.
At least one field must be specified.
The root is the CellData; 'row.values.' should not be specified.
A single |
requests[].autoResizeDimensions OBJECT Automatically resizes one or more dimensions based on the contents of the cells in that dimension |
requests[].autoResizeDimensions.dimensions OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].autoResizeDimensions.dimensions.sheetId INTEGER The sheet this span is on |
requests[].autoResizeDimensions.dimensions.dimension ENUMERATION The dimension of the span |
requests[].autoResizeDimensions.dimensions.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].autoResizeDimensions.dimensions.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
requests[].cutPaste OBJECT Moves data from the source to the destination |
requests[].cutPaste.source OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].cutPaste.source.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.sheetId INTEGER The sheet this range is on |
requests[].cutPaste.source.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].cutPaste.source.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].cutPaste.pasteType ENUMERATION What kind of data to paste. All the source data will be cut, regardless of what is pasted |
requests[].cutPaste.destination OBJECT A coordinate in a sheet. All indexes are zero-based |
requests[].cutPaste.destination.rowIndex INTEGER The row index of the coordinate |
requests[].cutPaste.destination.columnIndex INTEGER The column index of the coordinate |
requests[].cutPaste.destination.sheetId INTEGER The sheet this coordinate is on |
requests[].mergeCells OBJECT Merges all cells in the range |
requests[].mergeCells.mergeType ENUMERATION How the cells should be merged |
requests[].mergeCells.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].mergeCells.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.sheetId INTEGER The sheet this range is on |
requests[].mergeCells.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].mergeCells.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].updateNamedRange OBJECT Updates properties of the named range with the specified namedRangeId |
requests[].updateNamedRange.namedRange OBJECT A named range |
requests[].updateNamedRange.namedRange.namedRangeId STRING The ID of the named range |
requests[].updateNamedRange.namedRange.name STRING The name of the named range |
requests[].updateNamedRange.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].updateSheetProperties OBJECT Updates properties of the sheet with the specified sheetId |
requests[].updateSheetProperties.fields ANY The fields that should be updated. At least one field must be specified.
The root |
requests[].updateSheetProperties.properties OBJECT Properties of a sheet |
requests[].updateSheetProperties.properties.title STRING The name of the sheet |
requests[].updateSheetProperties.properties.index INTEGER The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
requests[].updateSheetProperties.properties.sheetId INTEGER The ID of the sheet. Must be non-negative. This field cannot be changed once set |
requests[].updateSheetProperties.properties.rightToLeft BOOLEAN True if the sheet is an RTL sheet instead of an LTR sheet |
requests[].updateSheetProperties.properties.hidden BOOLEAN True if the sheet is hidden in the UI, false if it's visible |
requests[].updateSheetProperties.properties.sheetType ENUMERATION The type of sheet. Defaults to GRID. This field cannot be changed once set |
requests[].autoFill OBJECT Fills in more data based on existing data |
requests[].autoFill.useAlternateSeries BOOLEAN True if we should generate data with the "alternate" series. This differs based on the type and amount of source data |
requests[].autoFill.sourceAndDestination OBJECT A combination of a source range and how to extend that source |
requests[].autoFill.sourceAndDestination.fillLength INTEGER The number of rows or columns that data should be filled into. Positive numbers expand beyond the last row or last column of the source. Negative numbers expand before the first row or first column of the source |
requests[].autoFill.sourceAndDestination.dimension ENUMERATION The dimension that data should be filled into |
requests[].autoFill.range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
requests[].autoFill.range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
requests[].autoFill.range.sheetId INTEGER The sheet this range is on |
requests[].autoFill.range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
requests[].autoFill.range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
requests[].autoFill.range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
requests[].deleteDimension OBJECT Deletes the dimensions from the sheet |
requests[].deleteDimension.range OBJECT A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side |
requests[].deleteDimension.range.sheetId INTEGER The sheet this span is on |
requests[].deleteDimension.range.dimension ENUMERATION The dimension of the span |
requests[].deleteDimension.range.startIndex INTEGER The start (inclusive) of the span, or not set if unbounded |
requests[].deleteDimension.range.endIndex INTEGER The end (exclusive) of the span, or not set if unbounded |
Output
This building block provides 139 output parameters
Name | Format | Description |
---|---|---|
replies[] |
OBJECT |
A single response from an update |
replies[].addBanding |
OBJECT |
The result of adding a banded range |
replies[].addBanding.bandedRange |
OBJECT |
A banded (alternating colors) range in a sheet |
replies[].addBanding.bandedRange.bandedRangeId |
INTEGER |
The id of the banded range |
replies[].addProtectedRange |
OBJECT |
The result of adding a new protected range |
replies[].addProtectedRange.protectedRange |
OBJECT |
A protected range |
replies[].addProtectedRange.protectedRange.description |
STRING |
The description of this protected range |
replies[].addProtectedRange.protectedRange.namedRangeId |
STRING |
The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].addProtectedRange.protectedRange.protectedRangeId |
INTEGER |
The ID of the protected range. This field is read-only |
replies[].addProtectedRange.protectedRange.warningOnly |
BOOLEAN |
True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
replies[].addProtectedRange.protectedRange.requestingUserCanEdit |
BOOLEAN |
True if the user who requested this protected range can edit the protected area. This field is read-only |
replies[].duplicateSheet |
OBJECT |
The result of duplicating a sheet |
replies[].duplicateSheet.properties |
OBJECT |
Properties of a sheet |
replies[].duplicateSheet.properties.title |
STRING |
The name of the sheet |
replies[].duplicateSheet.properties.index |
INTEGER |
The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
replies[].duplicateSheet.properties.sheetId |
INTEGER |
The ID of the sheet. Must be non-negative. This field cannot be changed once set |
replies[].duplicateSheet.properties.rightToLeft |
BOOLEAN |
True if the sheet is an RTL sheet instead of an LTR sheet |
replies[].duplicateSheet.properties.hidden |
BOOLEAN |
True if the sheet is hidden in the UI, false if it's visible |
replies[].duplicateSheet.properties.sheetType |
ENUMERATION |
The type of sheet. Defaults to GRID. This field cannot be changed once set |
replies[].updateEmbeddedObjectPosition |
OBJECT |
The result of updating an embedded object's position |
replies[].updateEmbeddedObjectPosition.position |
OBJECT |
The position of an embedded object such as a chart |
replies[].updateEmbeddedObjectPosition.position.newSheet |
BOOLEAN |
If true, the embedded object is put on a new sheet whose ID is chosen for you. Used only when writing |
replies[].updateEmbeddedObjectPosition.position.sheetId |
INTEGER |
The sheet this is on. Set only if the embedded object is on its own sheet. Must be non-negative |
replies[].deleteConditionalFormatRule |
OBJECT |
The result of deleting a conditional format rule |
replies[].deleteConditionalFormatRule.rule |
OBJECT |
A rule describing a conditional format |
replies[].deleteDimensionGroup |
OBJECT |
The result of deleting a group |
replies[].deleteDimensionGroup.dimensionGroups[] |
OBJECT |
A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
replies[].addDimensionGroup |
OBJECT |
The result of adding a group |
replies[].addDimensionGroup.dimensionGroups[] |
OBJECT |
A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
replies[].duplicateFilterView |
OBJECT |
The result of a filter view being duplicated |
replies[].duplicateFilterView.filter |
OBJECT |
A filter view |
replies[].duplicateFilterView.filter.namedRangeId |
STRING |
The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].duplicateFilterView.filter.filterViewId |
INTEGER |
The ID of the filter view |
replies[].duplicateFilterView.filter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
replies[].duplicateFilterView.filter.title |
STRING |
The name of the filter view |
replies[].addChart |
OBJECT |
The result of adding a chart to a spreadsheet |
replies[].addChart.chart |
OBJECT |
A chart embedded in a sheet |
replies[].addChart.chart.chartId |
INTEGER |
The ID of the chart |
replies[].updateDeveloperMetadata |
OBJECT |
The response from updating developer metadata |
replies[].updateDeveloperMetadata.developerMetadata[] |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].findReplace |
OBJECT |
The result of the find/replace |
replies[].findReplace.occurrencesChanged |
INTEGER |
The number of occurrences (possibly multiple within a cell) changed.
For example, if replacing |
replies[].findReplace.rowsChanged |
INTEGER |
The number of rows changed |
replies[].findReplace.sheetsChanged |
INTEGER |
The number of sheets changed |
replies[].findReplace.formulasChanged |
INTEGER |
The number of formula cells changed |
replies[].findReplace.valuesChanged |
INTEGER |
The number of non-formula cells changed |
replies[].addSheet |
OBJECT |
The result of adding a sheet |
replies[].addSheet.properties |
OBJECT |
Properties of a sheet |
replies[].addSheet.properties.title |
STRING |
The name of the sheet |
replies[].addSheet.properties.index |
INTEGER |
The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
replies[].addSheet.properties.sheetId |
INTEGER |
The ID of the sheet. Must be non-negative. This field cannot be changed once set |
replies[].addSheet.properties.rightToLeft |
BOOLEAN |
True if the sheet is an RTL sheet instead of an LTR sheet |
replies[].addSheet.properties.hidden |
BOOLEAN |
True if the sheet is hidden in the UI, false if it's visible |
replies[].addSheet.properties.sheetType |
ENUMERATION |
The type of sheet. Defaults to GRID. This field cannot be changed once set |
replies[].updateConditionalFormatRule |
OBJECT |
The result of updating a conditional format rule |
replies[].updateConditionalFormatRule.newIndex |
INTEGER |
The index of the new rule |
replies[].updateConditionalFormatRule.oldIndex |
INTEGER |
The old index of the rule. Not set if a rule was replaced (because it is the same as new_index) |
replies[].updateConditionalFormatRule.newRule |
OBJECT |
A rule describing a conditional format |
replies[].updateConditionalFormatRule.oldRule |
OBJECT |
A rule describing a conditional format |
replies[].createDeveloperMetadata |
OBJECT |
The response from creating developer metadata |
replies[].createDeveloperMetadata.developerMetadata |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].createDeveloperMetadata.developerMetadata.metadataKey |
STRING |
The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
replies[].createDeveloperMetadata.developerMetadata.metadataId |
INTEGER |
The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
replies[].createDeveloperMetadata.developerMetadata.visibility |
ENUMERATION |
The metadata visibility. Developer metadata must always have a visibility specified |
replies[].createDeveloperMetadata.developerMetadata.metadataValue |
STRING |
Data associated with the metadata's key |
replies[].addNamedRange |
OBJECT |
The result of adding a named range |
replies[].addNamedRange.namedRange |
OBJECT |
A named range |
replies[].addNamedRange.namedRange.namedRangeId |
STRING |
The ID of the named range |
replies[].addNamedRange.namedRange.name |
STRING |
The name of the named range |
replies[].deleteDeveloperMetadata |
OBJECT |
The response from deleting developer metadata |
replies[].deleteDeveloperMetadata.deletedDeveloperMetadata[] |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].addFilterView |
OBJECT |
The result of adding a filter view |
replies[].addFilterView.filter |
OBJECT |
A filter view |
replies[].addFilterView.filter.namedRangeId |
STRING |
The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].addFilterView.filter.filterViewId |
INTEGER |
The ID of the filter view |
replies[].addFilterView.filter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
replies[].addFilterView.filter.title |
STRING |
The name of the filter view |
updatedSpreadsheet |
OBJECT |
Resource that represents a spreadsheet |
updatedSpreadsheet.properties |
OBJECT |
Properties of a spreadsheet |
updatedSpreadsheet.properties.autoRecalc |
ENUMERATION |
The amount of time to wait before volatile functions are recalculated |
updatedSpreadsheet.properties.defaultFormat |
OBJECT |
The format of a cell |
updatedSpreadsheet.properties.defaultFormat.numberFormat |
OBJECT |
The number format of a cell |
updatedSpreadsheet.properties.defaultFormat.horizontalAlignment |
ENUMERATION |
The horizontal alignment of the value in the cell |
updatedSpreadsheet.properties.defaultFormat.hyperlinkDisplayType |
ENUMERATION |
How a hyperlink, if it exists, should be displayed in the cell |
updatedSpreadsheet.properties.defaultFormat.textFormat |
OBJECT |
The format of a run of text in a cell. Absent values indicate that the field isn't specified |
updatedSpreadsheet.properties.defaultFormat.backgroundColor |
OBJECT |
Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of "java.awt.Color" in Java; it can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" method in iOS; and, with just a little work, it can be easily formatted into a CSS "rgba()" string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Example (Java):
Example (iOS / Obj-C):
Example (JavaScript):
|
updatedSpreadsheet.properties.defaultFormat.padding |
OBJECT |
The amount of padding around the cell, in pixels. When updating padding, every field must be specified |
updatedSpreadsheet.properties.defaultFormat.verticalAlignment |
ENUMERATION |
The vertical alignment of the value in the cell |
updatedSpreadsheet.properties.defaultFormat.textDirection |
ENUMERATION |
The direction of the text in the cell |
updatedSpreadsheet.properties.defaultFormat.borders |
OBJECT |
The borders of the cell |
updatedSpreadsheet.properties.defaultFormat.textRotation |
OBJECT |
The rotation applied to text in a cell |
updatedSpreadsheet.properties.defaultFormat.wrapStrategy |
ENUMERATION |
The wrap strategy for the value in the cell |
updatedSpreadsheet.properties.title |
STRING |
The title of the spreadsheet |
updatedSpreadsheet.properties.timeZone |
STRING |
The time zone of the spreadsheet, in CLDR format such as
|
updatedSpreadsheet.properties.locale |
STRING |
The locale of the spreadsheet in one of the following formats:
Note: when updating this field, not all locales/languages are supported |
updatedSpreadsheet.properties.iterativeCalculationSettings |
OBJECT |
Settings to control how circular dependencies are resolved with iterative calculation |
updatedSpreadsheet.properties.iterativeCalculationSettings.convergenceThreshold |
NUMBER |
When iterative calculation is enabled and successive results differ by less than this threshold value, the calculation rounds stop |
updatedSpreadsheet.properties.iterativeCalculationSettings.maxIterations |
INTEGER |
When iterative calculation is enabled, the maximum number of calculation rounds to perform |
updatedSpreadsheet.spreadsheetId |
STRING |
The ID of the spreadsheet. This field is read-only |
updatedSpreadsheet.namedRanges[] |
OBJECT |
A named range |
updatedSpreadsheet.namedRanges[].namedRangeId |
STRING |
The ID of the named range |
updatedSpreadsheet.namedRanges[].range |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
updatedSpreadsheet.namedRanges[].range.startColumnIndex |
INTEGER |
The start column (inclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.sheetId |
INTEGER |
The sheet this range is on |
updatedSpreadsheet.namedRanges[].range.endRowIndex |
INTEGER |
The end row (exclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.endColumnIndex |
INTEGER |
The end column (exclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.startRowIndex |
INTEGER |
The start row (inclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].name |
STRING |
The name of the named range |
updatedSpreadsheet.developerMetadata[] |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
updatedSpreadsheet.developerMetadata[].metadataKey |
STRING |
The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
updatedSpreadsheet.developerMetadata[].metadataId |
INTEGER |
The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
updatedSpreadsheet.developerMetadata[].location |
OBJECT |
A location where metadata may be associated in a spreadsheet |
updatedSpreadsheet.developerMetadata[].location.spreadsheet |
BOOLEAN |
True when metadata is associated with an entire spreadsheet |
updatedSpreadsheet.developerMetadata[].location.sheetId |
INTEGER |
The ID of the sheet when metadata is associated with an entire sheet |
updatedSpreadsheet.developerMetadata[].location.locationType |
ENUMERATION |
The type of location this object represents. This field is read-only |
updatedSpreadsheet.developerMetadata[].visibility |
ENUMERATION |
The metadata visibility. Developer metadata must always have a visibility specified |
updatedSpreadsheet.developerMetadata[].metadataValue |
STRING |
Data associated with the metadata's key |
updatedSpreadsheet.sheets[] |
OBJECT |
A sheet in a spreadsheet |
updatedSpreadsheet.sheets[].merges[] |
OBJECT |
A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
updatedSpreadsheet.sheets[].bandedRanges[] |
OBJECT |
A banded (alternating colors) range in a sheet |
updatedSpreadsheet.sheets[].charts[] |
OBJECT |
A chart embedded in a sheet |
updatedSpreadsheet.sheets[].filterViews[] |
OBJECT |
A filter view |
updatedSpreadsheet.sheets[].rowGroups[] |
OBJECT |
A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
updatedSpreadsheet.sheets[].data[] |
OBJECT |
Data in the grid, as well as metadata about the dimensions |
updatedSpreadsheet.sheets[].properties |
OBJECT |
Properties of a sheet |
updatedSpreadsheet.sheets[].properties.title |
STRING |
The name of the sheet |
updatedSpreadsheet.sheets[].properties.index |
INTEGER |
The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
updatedSpreadsheet.sheets[].properties.sheetId |
INTEGER |
The ID of the sheet. Must be non-negative. This field cannot be changed once set |
updatedSpreadsheet.sheets[].properties.rightToLeft |
BOOLEAN |
True if the sheet is an RTL sheet instead of an LTR sheet |
updatedSpreadsheet.sheets[].properties.hidden |
BOOLEAN |
True if the sheet is hidden in the UI, false if it's visible |
updatedSpreadsheet.sheets[].properties.sheetType |
ENUMERATION |
The type of sheet. Defaults to GRID. This field cannot be changed once set |
updatedSpreadsheet.sheets[].conditionalFormats[] |
OBJECT |
A rule describing a conditional format |
updatedSpreadsheet.sheets[].columnGroups[] |
OBJECT |
A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
updatedSpreadsheet.sheets[].protectedRanges[] |
OBJECT |
A protected range |
updatedSpreadsheet.sheets[].developerMetadata[] |
OBJECT |
Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
updatedSpreadsheet.sheets[].basicFilter |
OBJECT |
The default filter associated with a sheet |
updatedSpreadsheet.sheets[].basicFilter.criteria |
OBJECT |
The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
updatedSpreadsheet.spreadsheetUrl |
STRING |
The url of the spreadsheet. This field is read-only |
spreadsheetId |
STRING |
The spreadsheet the updates were applied to |
= Parameter name
= Format
replies[] OBJECT A single response from an update |
replies[].addBanding OBJECT The result of adding a banded range |
replies[].addBanding.bandedRange OBJECT A banded (alternating colors) range in a sheet |
replies[].addBanding.bandedRange.bandedRangeId INTEGER The id of the banded range |
replies[].addProtectedRange OBJECT The result of adding a new protected range |
replies[].addProtectedRange.protectedRange OBJECT A protected range |
replies[].addProtectedRange.protectedRange.description STRING The description of this protected range |
replies[].addProtectedRange.protectedRange.namedRangeId STRING The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].addProtectedRange.protectedRange.protectedRangeId INTEGER The ID of the protected range. This field is read-only |
replies[].addProtectedRange.protectedRange.warningOnly BOOLEAN True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored.
Additionally, if this field is changed from true to false and the
|
replies[].addProtectedRange.protectedRange.requestingUserCanEdit BOOLEAN True if the user who requested this protected range can edit the protected area. This field is read-only |
replies[].duplicateSheet OBJECT The result of duplicating a sheet |
replies[].duplicateSheet.properties OBJECT Properties of a sheet |
replies[].duplicateSheet.properties.title STRING The name of the sheet |
replies[].duplicateSheet.properties.index INTEGER The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
replies[].duplicateSheet.properties.sheetId INTEGER The ID of the sheet. Must be non-negative. This field cannot be changed once set |
replies[].duplicateSheet.properties.rightToLeft BOOLEAN True if the sheet is an RTL sheet instead of an LTR sheet |
replies[].duplicateSheet.properties.hidden BOOLEAN True if the sheet is hidden in the UI, false if it's visible |
replies[].duplicateSheet.properties.sheetType ENUMERATION The type of sheet. Defaults to GRID. This field cannot be changed once set |
replies[].updateEmbeddedObjectPosition OBJECT The result of updating an embedded object's position |
replies[].updateEmbeddedObjectPosition.position OBJECT The position of an embedded object such as a chart |
replies[].updateEmbeddedObjectPosition.position.newSheet BOOLEAN If true, the embedded object is put on a new sheet whose ID is chosen for you. Used only when writing |
replies[].updateEmbeddedObjectPosition.position.sheetId INTEGER The sheet this is on. Set only if the embedded object is on its own sheet. Must be non-negative |
replies[].deleteConditionalFormatRule OBJECT The result of deleting a conditional format rule |
replies[].deleteConditionalFormatRule.rule OBJECT A rule describing a conditional format |
replies[].deleteDimensionGroup OBJECT The result of deleting a group |
replies[].deleteDimensionGroup.dimensionGroups[] OBJECT A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
replies[].addDimensionGroup OBJECT The result of adding a group |
replies[].addDimensionGroup.dimensionGroups[] OBJECT A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
replies[].duplicateFilterView OBJECT The result of a filter view being duplicated |
replies[].duplicateFilterView.filter OBJECT A filter view |
replies[].duplicateFilterView.filter.namedRangeId STRING The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].duplicateFilterView.filter.filterViewId INTEGER The ID of the filter view |
replies[].duplicateFilterView.filter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
replies[].duplicateFilterView.filter.title STRING The name of the filter view |
replies[].addChart OBJECT The result of adding a chart to a spreadsheet |
replies[].addChart.chart OBJECT A chart embedded in a sheet |
replies[].addChart.chart.chartId INTEGER The ID of the chart |
replies[].updateDeveloperMetadata OBJECT The response from updating developer metadata |
replies[].updateDeveloperMetadata.developerMetadata[] OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].findReplace OBJECT The result of the find/replace |
replies[].findReplace.occurrencesChanged INTEGER The number of occurrences (possibly multiple within a cell) changed.
For example, if replacing |
replies[].findReplace.rowsChanged INTEGER The number of rows changed |
replies[].findReplace.sheetsChanged INTEGER The number of sheets changed |
replies[].findReplace.formulasChanged INTEGER The number of formula cells changed |
replies[].findReplace.valuesChanged INTEGER The number of non-formula cells changed |
replies[].addSheet OBJECT The result of adding a sheet |
replies[].addSheet.properties OBJECT Properties of a sheet |
replies[].addSheet.properties.title STRING The name of the sheet |
replies[].addSheet.properties.index INTEGER The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
replies[].addSheet.properties.sheetId INTEGER The ID of the sheet. Must be non-negative. This field cannot be changed once set |
replies[].addSheet.properties.rightToLeft BOOLEAN True if the sheet is an RTL sheet instead of an LTR sheet |
replies[].addSheet.properties.hidden BOOLEAN True if the sheet is hidden in the UI, false if it's visible |
replies[].addSheet.properties.sheetType ENUMERATION The type of sheet. Defaults to GRID. This field cannot be changed once set |
replies[].updateConditionalFormatRule OBJECT The result of updating a conditional format rule |
replies[].updateConditionalFormatRule.newIndex INTEGER The index of the new rule |
replies[].updateConditionalFormatRule.oldIndex INTEGER The old index of the rule. Not set if a rule was replaced (because it is the same as new_index) |
replies[].updateConditionalFormatRule.newRule OBJECT A rule describing a conditional format |
replies[].updateConditionalFormatRule.oldRule OBJECT A rule describing a conditional format |
replies[].createDeveloperMetadata OBJECT The response from creating developer metadata |
replies[].createDeveloperMetadata.developerMetadata OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].createDeveloperMetadata.developerMetadata.metadataKey STRING The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
replies[].createDeveloperMetadata.developerMetadata.metadataId INTEGER The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
replies[].createDeveloperMetadata.developerMetadata.visibility ENUMERATION The metadata visibility. Developer metadata must always have a visibility specified |
replies[].createDeveloperMetadata.developerMetadata.metadataValue STRING Data associated with the metadata's key |
replies[].addNamedRange OBJECT The result of adding a named range |
replies[].addNamedRange.namedRange OBJECT A named range |
replies[].addNamedRange.namedRange.namedRangeId STRING The ID of the named range |
replies[].addNamedRange.namedRange.name STRING The name of the named range |
replies[].deleteDeveloperMetadata OBJECT The response from deleting developer metadata |
replies[].deleteDeveloperMetadata.deletedDeveloperMetadata[] OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
replies[].addFilterView OBJECT The result of adding a filter view |
replies[].addFilterView.filter OBJECT A filter view |
replies[].addFilterView.filter.namedRangeId STRING The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set |
replies[].addFilterView.filter.filterViewId INTEGER The ID of the filter view |
replies[].addFilterView.filter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
replies[].addFilterView.filter.title STRING The name of the filter view |
updatedSpreadsheet OBJECT Resource that represents a spreadsheet |
updatedSpreadsheet.properties OBJECT Properties of a spreadsheet |
updatedSpreadsheet.properties.autoRecalc ENUMERATION The amount of time to wait before volatile functions are recalculated |
updatedSpreadsheet.properties.defaultFormat OBJECT The format of a cell |
updatedSpreadsheet.properties.defaultFormat.numberFormat OBJECT The number format of a cell |
updatedSpreadsheet.properties.defaultFormat.horizontalAlignment ENUMERATION The horizontal alignment of the value in the cell |
updatedSpreadsheet.properties.defaultFormat.hyperlinkDisplayType ENUMERATION How a hyperlink, if it exists, should be displayed in the cell |
updatedSpreadsheet.properties.defaultFormat.textFormat OBJECT The format of a run of text in a cell. Absent values indicate that the field isn't specified |
updatedSpreadsheet.properties.defaultFormat.backgroundColor OBJECT Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of "java.awt.Color" in Java; it can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" method in iOS; and, with just a little work, it can be easily formatted into a CSS "rgba()" string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Example (Java):
Example (iOS / Obj-C):
Example (JavaScript):
|
updatedSpreadsheet.properties.defaultFormat.padding OBJECT The amount of padding around the cell, in pixels. When updating padding, every field must be specified |
updatedSpreadsheet.properties.defaultFormat.verticalAlignment ENUMERATION The vertical alignment of the value in the cell |
updatedSpreadsheet.properties.defaultFormat.textDirection ENUMERATION The direction of the text in the cell |
updatedSpreadsheet.properties.defaultFormat.borders OBJECT The borders of the cell |
updatedSpreadsheet.properties.defaultFormat.textRotation OBJECT The rotation applied to text in a cell |
updatedSpreadsheet.properties.defaultFormat.wrapStrategy ENUMERATION The wrap strategy for the value in the cell |
updatedSpreadsheet.properties.title STRING The title of the spreadsheet |
updatedSpreadsheet.properties.timeZone STRING The time zone of the spreadsheet, in CLDR format such as
|
updatedSpreadsheet.properties.locale STRING The locale of the spreadsheet in one of the following formats:
Note: when updating this field, not all locales/languages are supported |
updatedSpreadsheet.properties.iterativeCalculationSettings OBJECT Settings to control how circular dependencies are resolved with iterative calculation |
updatedSpreadsheet.properties.iterativeCalculationSettings.convergenceThreshold NUMBER When iterative calculation is enabled and successive results differ by less than this threshold value, the calculation rounds stop |
updatedSpreadsheet.properties.iterativeCalculationSettings.maxIterations INTEGER When iterative calculation is enabled, the maximum number of calculation rounds to perform |
updatedSpreadsheet.spreadsheetId STRING The ID of the spreadsheet. This field is read-only |
updatedSpreadsheet.namedRanges[] OBJECT A named range |
updatedSpreadsheet.namedRanges[].namedRangeId STRING The ID of the named range |
updatedSpreadsheet.namedRanges[].range OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
updatedSpreadsheet.namedRanges[].range.startColumnIndex INTEGER The start column (inclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.sheetId INTEGER The sheet this range is on |
updatedSpreadsheet.namedRanges[].range.endRowIndex INTEGER The end row (exclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.endColumnIndex INTEGER The end column (exclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].range.startRowIndex INTEGER The start row (inclusive) of the range, or not set if unbounded |
updatedSpreadsheet.namedRanges[].name STRING The name of the named range |
updatedSpreadsheet.developerMetadata[] OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
updatedSpreadsheet.developerMetadata[].metadataKey STRING The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified |
updatedSpreadsheet.developerMetadata[].metadataId INTEGER The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive |
updatedSpreadsheet.developerMetadata[].location OBJECT A location where metadata may be associated in a spreadsheet |
updatedSpreadsheet.developerMetadata[].location.spreadsheet BOOLEAN True when metadata is associated with an entire spreadsheet |
updatedSpreadsheet.developerMetadata[].location.sheetId INTEGER The ID of the sheet when metadata is associated with an entire sheet |
updatedSpreadsheet.developerMetadata[].location.locationType ENUMERATION The type of location this object represents. This field is read-only |
updatedSpreadsheet.developerMetadata[].visibility ENUMERATION The metadata visibility. Developer metadata must always have a visibility specified |
updatedSpreadsheet.developerMetadata[].metadataValue STRING Data associated with the metadata's key |
updatedSpreadsheet.sheets[] OBJECT A sheet in a spreadsheet |
updatedSpreadsheet.sheets[].merges[] OBJECT A range on a sheet. All indexes are zero-based. Indexes are half open, e.g the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if
The start index must always be less than or equal to the end index.
If the start index equals the end index, then the range is empty.
Empty ranges are typically not meaningful and are usually rendered in the
UI as |
updatedSpreadsheet.sheets[].bandedRanges[] OBJECT A banded (alternating colors) range in a sheet |
updatedSpreadsheet.sheets[].charts[] OBJECT A chart embedded in a sheet |
updatedSpreadsheet.sheets[].filterViews[] OBJECT A filter view |
updatedSpreadsheet.sheets[].rowGroups[] OBJECT A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
updatedSpreadsheet.sheets[].data[] OBJECT Data in the grid, as well as metadata about the dimensions |
updatedSpreadsheet.sheets[].properties OBJECT Properties of a sheet |
updatedSpreadsheet.sheets[].properties.title STRING The name of the sheet |
updatedSpreadsheet.sheets[].properties.index INTEGER The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in "before the move" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1 |
updatedSpreadsheet.sheets[].properties.sheetId INTEGER The ID of the sheet. Must be non-negative. This field cannot be changed once set |
updatedSpreadsheet.sheets[].properties.rightToLeft BOOLEAN True if the sheet is an RTL sheet instead of an LTR sheet |
updatedSpreadsheet.sheets[].properties.hidden BOOLEAN True if the sheet is hidden in the UI, false if it's visible |
updatedSpreadsheet.sheets[].properties.sheetType ENUMERATION The type of sheet. Defaults to GRID. This field cannot be changed once set |
updatedSpreadsheet.sheets[].conditionalFormats[] OBJECT A rule describing a conditional format |
updatedSpreadsheet.sheets[].columnGroups[] OBJECT A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet |
updatedSpreadsheet.sheets[].protectedRanges[] OBJECT A protected range |
updatedSpreadsheet.sheets[].developerMetadata[] OBJECT Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too |
updatedSpreadsheet.sheets[].basicFilter OBJECT The default filter associated with a sheet |
updatedSpreadsheet.sheets[].basicFilter.criteria OBJECT The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column |
updatedSpreadsheet.spreadsheetUrl STRING The url of the spreadsheet. This field is read-only |
spreadsheetId STRING The spreadsheet the updates were applied to |