Cells and ranges
Cell editing, reading details, shifts, copy and paste, find and replace, sorting, undo and redo, navigation around the sheet. Operations on the page: 23.
Cell editing, reading details, shifts, copy and paste, find and replace, sorting, undo and redo, navigation around the sheet. Terms are in the glossary.
Operations on this page — 23
apply_cell_editsapply_cell_shiftclear_sheet_boundedcommit_replacements_in_workbook_subsetcompute_replacements_in_workbook_subsetcompute_selection_aggregatesconvert_entity_data_type_in_placecopy_rangefill_across_sheetsfind_in_workbook_subsetflash_fill_patternmark_used_range_dirty_boundedmove_clipboard_rangepaste_rangepreview_cell_editsread_cell_detailsredo_last_cell_editredo_last_range_editresolve_current_regionresolve_navigation_edgesort_range_rowsundo_last_cell_editundo_last_range_edit
apply_cell_edits
Section titled “apply_cell_edits”Applies a batch of cell edits in one atomic action: either all the edits apply, or none of them do.
Request
| Field | TypeScript type | Req. | Note from the contract |
|---|---|---|---|
| operation | "apply_cell_edits" |
yes | |
subsetId |
string | yes | |
| edits | CellInputEdit[] | yes | |
| viewport | ViewportWindow | null | no | |
expectedRevision |
number | null | no | An optional race-condition check. If this field is present, it must match the workbook’s current history revision; on a mismatch, the request is rejected with apply-cell-edits-stale-revision, and nothing changes. Without this field, the edit is applied unconditionally. |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · apply_cell_edits
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "apply_cell_edits" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
editedKeys |
string[] | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
sheetProtected |
boolean | yes |
conditionalFormattingRules |
ContractConditionalRule[] | no |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
tableMetadata |
ContractTableMetadataProjection | null | no |
workbookTableMetadata |
ContractTableMetadataProjection | null | no |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
Minimal JSON template
{ "operation": "apply_cell_edits", "subsetId": "<subsetId>", "edits": [], "requestedBackend": "native-desktop"}apply_cell_shift
Section titled “apply_cell_shift”Applies a cell shift.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "apply_cell_shift" |
yes |
subsetId |
string | yes |
sheetKey |
string | yes |
rowStart |
number | yes |
rowEnd |
number | yes |
colStart |
number | yes |
colEnd |
number | yes |
| direction | ContractXlsxCellShiftDirection | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · apply_cell_shift
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "apply_cell_shift" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
| range | CellRange | yes |
| direction | ContractXlsxCellShiftDirection | yes |
changedRows |
number[] | yes |
changedColumns |
number[] | yes |
shiftedCellCount |
number | yes |
removedCellCount |
number | yes |
cellShiftClaim |
"live_verified" |
yes |
shiftScope |
"active_visible_value_cells_current_sheet" |
yes |
formulaReferenceRewriteClaim |
"no" |
yes |
mergeReferenceRewriteClaim |
"no" |
yes |
dirtyCellCount |
number | yes |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
layoutMetrics |
ContractLayoutMetricsSubset | yes |
Minimal JSON template
{ "operation": "apply_cell_shift", "subsetId": "<subsetId>", "sheetKey": "<sheetPath>", "rowStart": 0, "rowEnd": 0, "colStart": 0, "colEnd": 0, "direction": "<ContractXlsxCellShiftDirection>", "requestedBackend": "native-desktop"}clear_sheet_bounded
Section titled “clear_sheet_bounded”Clears a sheet within given bounds.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "clear_sheet_bounded" |
yes |
subsetId |
string | yes |
sheetKey |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · clear_sheet_bounded
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "clear_sheet_bounded" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
clearedSheet |
ContractActiveSheetMeta | yes |
activeSheet |
ContractActiveSheetMeta | yes |
sheetCount |
number | yes |
workbookSheets |
ContractWorkbookSheetMeta[] | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
layoutMetrics |
ContractLayoutMetricsSubset | null | no |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
sheetClearClaim |
"live_verified" |
yes |
clearScope |
"active_worksheet_cells_only_preserve_sheet_metadata" |
yes |
formattingClearClaim |
"no" |
yes |
Minimal JSON template
{ "operation": "clear_sheet_bounded", "subsetId": "<subsetId>", "sheetKey": "<sheetPath>", "requestedBackend": "native-desktop"}commit_replacements_in_workbook_subset
Section titled “commit_replacements_in_workbook_subset”Commits replacements in a workbook subset.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "commit_replacements_in_workbook_subset" |
yes |
subsetId |
string | yes |
| query | string | yes |
| replacement | string | yes |
matchCase |
boolean | no |
matchEntireCell |
boolean | no |
lookIn |
ContractFindLookIn | yes |
| scope | ContractFindScope | yes |
searchOrder |
ContractFindSearchOrder | no |
expectedRevision |
number | yes |
| locale | string | no |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · commit_replacements_in_workbook_subset
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "commit_replacements_in_workbook_subset" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
| scope | ContractFindScope | yes |
lookIn |
ContractFindLookIn | yes |
searchOrder |
ContractFindSearchOrder | yes |
plannedEditCount |
number | yes |
appliedEditCount |
number | yes |
changedKeys |
string[] | yes |
| dirty | boolean | yes |
recalcNeeded |
boolean | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
Minimal JSON template
{ "operation": "commit_replacements_in_workbook_subset", "subsetId": "<subsetId>", "query": "<string>", "replacement": "<string>", "lookIn": "<ContractFindLookIn>", "scope": "<ContractFindScope>", "expectedRevision": 0, "requestedBackend": "native-desktop"}compute_replacements_in_workbook_subset
Section titled “compute_replacements_in_workbook_subset”Computes replacements in a workbook subset.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "compute_replacements_in_workbook_subset" |
yes |
subsetId |
string | yes |
| query | string | yes |
| replacement | string | yes |
matchCase |
boolean | no |
matchEntireCell |
boolean | no |
lookIn |
ContractFindLookIn | yes |
| scope | ContractFindScope | yes |
searchOrder |
ContractFindSearchOrder | no |
resultOffset |
number | no |
resultLimit |
number | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · compute_replacements_in_workbook_subset
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "compute_replacements_in_workbook_subset" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
| scope | ContractFindScope | yes |
lookIn |
ContractFindLookIn | yes |
searchOrder |
ContractFindSearchOrder | yes |
totalEditCount |
number | yes |
resultOffset |
number | yes |
returnedEditCount |
number | yes |
| truncated | boolean | yes |
nextResultOffset |
number | no |
| index | ContractFindIndexStats | yes |
| edits | ContractReplaceEdit[] | yes |
Minimal JSON template
{ "operation": "compute_replacements_in_workbook_subset", "subsetId": "<subsetId>", "query": "<string>", "replacement": "<string>", "lookIn": "<ContractFindLookIn>", "scope": "<ContractFindScope>", "requestedBackend": "native-desktop"}compute_selection_aggregates
Section titled “compute_selection_aggregates”Computes totals for a selection.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "compute_selection_aggregates" |
yes |
subsetId |
string | yes |
| ranges | CellRange[] | yes |
aggregateMode |
"visible_rows" | “all_rows” |
no |
requestGeneration |
number | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · compute_selection_aggregates
| Field | TypeScript type | Req. | Note from the contract |
|---|---|---|---|
| operation | "compute_selection_aggregates" |
yes | |
subsetId |
string | yes | |
| session | ContractSubsetSessionInfo | yes | |
aggregateMode |
"visible_rows" | “all_rows” |
yes | |
requestGeneration |
number | no | |
workbookRevision |
number | yes | |
calculationGeneration |
number | yes | |
cacheStatus |
"hit" | “miss” |
yes | |
cacheEntryCount |
number | yes | |
scannedCellCount |
number | yes | |
nonEmptyCount |
number | yes | How many non-empty cells are in the selection — both text and numbers count. The same as the COUNTA function gives. |
numericCount |
number | yes | How many cells go into the numeric totals below. |
errorCount |
number | yes | |
formulaCount |
number | yes | |
numericAggregatesAvailable |
boolean | yes | |
| sum | number | yes | |
| average | number | yes | |
| min | number | yes | |
| max | number | yes |
Minimal JSON template
{ "operation": "compute_selection_aggregates", "subsetId": "<subsetId>", "ranges": [], "requestedBackend": "native-desktop"}convert_entity_data_type_in_place
Section titled “convert_entity_data_type_in_place”Converts an entity’s data type in place.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "convert_entity_data_type_in_place" |
yes |
subsetId |
string | yes |
| kind | ContractEntityDataTypeKind | yes |
| range | CellRange | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · convert_entity_data_type_in_place
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "convert_entity_data_type_in_place" |
yes |
subsetId |
string | yes |
| kind | ContractEntityDataTypeKind | yes |
| range | CellRange | yes |
originalTexts |
string[] | yes |
| disposition | ContractEntityConversionDisposition | yes |
didMutate |
boolean | yes |
entityCells |
ContractEntityCellMetadata[] | yes |
| refusal | ContractEntityConversionRefusal | null | no |
Minimal JSON template
{ "operation": "convert_entity_data_type_in_place", "subsetId": "<subsetId>", "kind": "<ContractEntityDataTypeKind>", "range": "<CellRange>", "requestedBackend": "native-desktop"}copy_range
Section titled “copy_range”Copies a range.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "copy_range" |
yes |
subsetId |
string | yes |
| range | CellRange | yes |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · copy_range
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "copy_range" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
clipboardId |
string | yes |
| range | CellRange | yes |
rowCount |
number | yes |
colCount |
number | yes |
cellCount |
number | yes |
mimeTypes |
string[] | yes |
mergedRanges |
CellRange[] | no |
sourceSelectionExpandedForMerges |
boolean | no |
clipboardHtml |
string | null | no |
canonicalEdits |
CellInputEdit[] | no |
Minimal JSON template
{ "operation": "copy_range", "subsetId": "<subsetId>", "range": "<CellRange>", "requestedBackend": "native-desktop"}fill_across_sheets
Section titled “fill_across_sheets”Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “fill_across_sheets” | yes |
subsetId |
string | yes |
sourceRange |
CellRange | yes |
targetSheetKeys |
string[] | yes |
| mode | ContractFillAcrossSheetsMode | yes |
expectedRevision |
number | null | no |
readOnly |
boolean | no |
| viewport | ViewportWindow | null | no |
Response on success · fill_across_sheets
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “fill_across_sheets” | yes |
subsetId |
string | yes |
| mode | ContractFillAcrossSheetsMode | yes |
sourceRange |
CellRange | yes |
targetSheetKeys |
string[] | yes |
mutationCount |
number | yes |
changedKeys |
string[] | yes |
| dirty | boolean | yes |
recalcNeeded |
boolean | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
Minimal JSON template
{ "operation": "fill_across_sheets", "subsetId": "<subsetId>", "sourceRange": "<CellRange>", "targetSheetKeys": "<targetSheetKeys>", "mode": "<ContractFillAcrossSheetsMode>"}find_in_workbook_subset
Section titled “find_in_workbook_subset”Searches within a workbook subset.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "find_in_workbook_subset" |
yes |
subsetId |
string | yes |
| query | string | yes |
matchCase |
boolean | no |
matchEntireCell |
boolean | no |
lookIn |
ContractFindLookIn | yes |
| scope | ContractFindScope | yes |
searchOrder |
ContractFindSearchOrder | no |
resultOffset |
number | no |
resultLimit |
number | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · find_in_workbook_subset
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "find_in_workbook_subset" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
| scope | ContractFindScope | yes |
lookIn |
ContractFindLookIn | yes |
searchOrder |
ContractFindSearchOrder | yes |
totalMatchCount |
number | yes |
resultOffset |
number | yes |
returnedMatchCount |
number | yes |
| truncated | boolean | yes |
nextResultOffset |
number | no |
| index | ContractFindIndexStats | yes |
| matches | ContractFindMatch[] | yes |
Minimal JSON template
{ "operation": "find_in_workbook_subset", "subsetId": "<subsetId>", "query": "<string>", "lookIn": "<ContractFindLookIn>", "scope": "<ContractFindScope>", "requestedBackend": "native-desktop"}flash_fill_pattern
Section titled “flash_fill_pattern”Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “flash_fill_pattern” | yes |
subsetId |
string | yes |
| mode | FlashFillMode | yes |
| generation | number | yes |
| examples | FlashFillExample[] | yes |
| rows | FlashFillTargetRow[] | yes |
selectedCandidateId |
string | null | no |
| locale | string | null | no |
| refusal | FlashFillRefusalContext | no |
expectedRevision |
number | null | no |
| viewport | ViewportWindow | null | no |
Response on success · flash_fill_pattern
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “flash_fill_pattern” | yes |
subsetId |
string | yes |
| mode | FlashFillMode | yes |
| generation | number | yes |
| inference | FlashFillInference | yes |
| applied | boolean | yes |
mutationCount |
number | yes |
| projection | ComputeResponsePayload | null | no |
Minimal JSON template
{ "operation": "flash_fill_pattern", "subsetId": "<subsetId>", "mode": "<FlashFillMode>", "generation": 0, "examples": [], "rows": []}mark_used_range_dirty_bounded
Section titled “mark_used_range_dirty_bounded”Marks the used range as changed, within given bounds.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "mark_used_range_dirty_bounded" |
yes |
subsetId |
string | yes |
sheetKey |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · mark_used_range_dirty_bounded
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "mark_used_range_dirty_bounded" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
changedSheet |
ContractActiveSheetMeta | yes |
previousUsedRangeDirty |
boolean | yes |
usedRangeDirty |
true | yes |
activeSheet |
ContractActiveSheetMeta | yes |
sheetCount |
number | yes |
workbookSheets |
ContractWorkbookSheetMeta[] | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
layoutMetrics |
ContractLayoutMetricsSubset | null | no |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
usedRangeDirtyClaim |
"live_verified" |
yes |
usedRangeDirtyScope |
"current_session_worksheet_used_range_marker" |
yes |
workbookMutationClaim |
"no" |
yes |
Minimal JSON template
{ "operation": "mark_used_range_dirty_bounded", "subsetId": "<subsetId>", "sheetKey": "<sheetPath>", "requestedBackend": "native-desktop"}move_clipboard_range
Section titled “move_clipboard_range”Moves a range from the clipboard.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "move_clipboard_range" |
yes |
subsetId |
string | yes |
clipboardId |
string | yes |
| target | CellRange | yes |
| transpose | false | no |
pasteMode |
"all" |
no |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · paste_range
| Field | TypeScript type | Req. | Note from the contract |
|---|---|---|---|
| operation | "paste_range" |
yes | |
subsetId |
string | yes | |
| session | ContractSubsetSessionInfo | yes | |
clipboardId |
string | yes | |
| delta | DeltaSummary | yes | |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no | |
activeSheet |
ContractActiveSheetMeta | yes | |
| geometry | ContractGeometrySubset | yes | |
layoutMetrics |
ContractLayoutMetricsSubset | no | |
recalcNeeded |
boolean | yes | |
| viewport | ViewportWindow | yes | |
previewCells |
ContractPreviewCell[] | yes | |
conditionalFormattingRules |
ContractConditionalRule[] | no | |
dataValidationMetadata |
ContractDataValidationMetadata | no | |
workbookHistory |
ContractWorkbookHistoryProjection | yes | The history state after the edit is applied: owner, depth, and revision. The shell displays these values as-is. |
Minimal JSON template
{ "operation": "move_clipboard_range", "subsetId": "<subsetId>", "clipboardId": "<string>", "target": "<CellRange>", "requestedBackend": "native-desktop"}paste_range
Section titled “paste_range”Pastes a range.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "paste_range" |
yes |
subsetId |
string | yes |
clipboardId |
string | yes |
| target | CellRange | yes |
| transpose | boolean | no |
pasteMode |
ContractPasteMode | no |
expectedRevision |
number | no |
readOnly |
boolean | no |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · paste_range
| Field | TypeScript type | Req. | Note from the contract |
|---|---|---|---|
| operation | "paste_range" |
yes | |
subsetId |
string | yes | |
| session | ContractSubsetSessionInfo | yes | |
clipboardId |
string | yes | |
| delta | DeltaSummary | yes | |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no | |
activeSheet |
ContractActiveSheetMeta | yes | |
| geometry | ContractGeometrySubset | yes | |
layoutMetrics |
ContractLayoutMetricsSubset | no | |
recalcNeeded |
boolean | yes | |
| viewport | ViewportWindow | yes | |
previewCells |
ContractPreviewCell[] | yes | |
conditionalFormattingRules |
ContractConditionalRule[] | no | |
dataValidationMetadata |
ContractDataValidationMetadata | no | |
workbookHistory |
ContractWorkbookHistoryProjection | yes | The history state after the edit is applied: owner, depth, and revision. The shell displays these values as-is. |
Minimal JSON template
{ "operation": "paste_range", "subsetId": "<subsetId>", "clipboardId": "<string>", "target": "<CellRange>", "requestedBackend": "native-desktop"}preview_cell_edits
Section titled “preview_cell_edits”Builds a preview: cell edits.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "preview_cell_edits" |
yes |
subsetId |
string | yes |
| edits | CellInputEdit[] | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · preview_cell_edits
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "preview_cell_edits" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
editedKeys |
string[] | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
Minimal JSON template
{ "operation": "preview_cell_edits", "subsetId": "<subsetId>", "edits": [], "requestedBackend": "native-desktop"}read_cell_details
Section titled “read_cell_details”Reads cell details.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "read_cell_details" |
yes |
subsetId |
string | yes |
| row | number | yes |
| col | number | yes |
| viewport | ViewportWindow | yes |
warmSheetForEdit |
boolean | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · read_cell_details
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "read_cell_details" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
| cell | ContractCellDetails | yes |
Minimal JSON template
{ "operation": "read_cell_details", "subsetId": "<subsetId>", "row": 0, "col": 0, "viewport": { "top": 0, "left": 0, "rows": 40, "cols": 12 }, "requestedBackend": "native-desktop"}redo_last_cell_edit
Section titled “redo_last_cell_edit”Redoes the last cell edit.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "redo_last_cell_edit" |
yes |
subsetId |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · redo_last_cell_edit
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "redo_last_cell_edit" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
redoneKey |
string | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
conditionalFormattingRules |
ContractConditionalRule[] | no |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
Minimal JSON template
{ "operation": "redo_last_cell_edit", "subsetId": "<subsetId>", "requestedBackend": "native-desktop"}redo_last_range_edit
Section titled “redo_last_range_edit”Redoes the last range edit.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "redo_last_range_edit" |
yes |
subsetId |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · redo_last_range_edit
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "redo_last_range_edit" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
redoneRange |
CellRange | yes |
redoneKeys |
string[] | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
sheetProtected |
boolean | yes |
conditionalFormattingRules |
ContractConditionalRule[] | no |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
layoutMetrics |
ContractLayoutMetricsSubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
dataValidationMetadata |
ContractDataValidationMetadata | yes |
tableName |
string | null | no |
tableRef |
string | null | no |
tableDataBodyRef |
string | null | no |
tableMetadata |
ContractTableMetadataProjection | null | no |
workbookTableMetadata |
ContractTableMetadataProjection | null | no |
worksheetAutoFilterMetadata |
ContractWorksheetAutoFilterMetadata | null | no |
hiddenRows |
number[] | yes |
manualHiddenRows |
number[] | yes |
filterHiddenRows |
number[] | yes |
rangeFilterHistoryReplay |
boolean | yes |
Minimal JSON template
{ "operation": "redo_last_range_edit", "subsetId": "<subsetId>", "requestedBackend": "native-desktop"}resolve_current_region
Section titled “resolve_current_region”Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “resolve_current_region” | yes |
subsetId |
string | yes |
sheetKey |
string | yes |
| row | number | yes |
| col | number | yes |
Response on success · resolve_current_region
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “resolve_current_region” | yes |
subsetId |
string | yes |
sheetKey |
string | yes |
fromRow |
number | yes |
fromCol |
number | yes |
rowStart |
number | yes |
colStart |
number | yes |
rowEnd |
number | yes |
colEnd |
number | yes |
Minimal JSON template
{ "operation": "resolve_current_region", "subsetId": "<subsetId>", "sheetKey": "<sheetKey>", "row": 0, "col": 0}resolve_navigation_edge
Section titled “resolve_navigation_edge”Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “resolve_navigation_edge” | yes |
subsetId |
string | yes |
sheetKey |
string | yes |
| row | number | yes |
| col | number | yes |
| direction | ContractNavigationEdgeDirection | yes |
Response on success · resolve_navigation_edge
| Field | TypeScript type | Req. |
|---|---|---|
| operation | “resolve_navigation_edge” | yes |
subsetId |
string | yes |
sheetKey |
string | yes |
fromRow |
number | yes |
fromCol |
number | yes |
| direction | ContractNavigationEdgeDirection | yes |
| row | number | yes |
| col | number | yes |
hitSheetBoundary |
boolean | yes |
Minimal JSON template
{ "operation": "resolve_navigation_edge", "subsetId": "<subsetId>", "sheetKey": "<sheetKey>", "row": 0, "col": 0, "direction": "<ContractNavigationEdgeDirection>"}sort_range_rows
Section titled “sort_range_rows”Sorts the rows of a range.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "sort_range_rows" |
yes |
subsetId |
string | yes |
| range | CellRange | yes |
| levels | SortRangeRowsLevel[] | yes |
| control | "apply" | “prepare” | “commit” | “cancel” |
no |
requestGeneration |
number | null | no |
expectedRevision |
number | null | no |
visibleRowsOnly |
boolean | no |
| locale | string | null | no |
caseSensitive |
boolean | no |
numericTextMode |
SortRangeRowsNumericTextMode | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · sort_range_rows
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "sort_range_rows" |
yes |
subsetId |
string | yes |
| control | "apply" | “prepare” | “commit” | “cancel” |
yes |
requestGeneration |
number | null | no |
| delta | DeltaSummary | yes |
movedRowCount |
number | yes |
sortedRowCount |
number | yes |
rowMoves |
SortRangeRowsRowMove[] | yes |
Minimal JSON template
{ "operation": "sort_range_rows", "subsetId": "<subsetId>", "range": "<CellRange>", "levels": [], "requestedBackend": "native-desktop"}undo_last_cell_edit
Section titled “undo_last_cell_edit”Undoes the last cell edit.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "undo_last_cell_edit" |
yes |
subsetId |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · undo_last_cell_edit
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "undo_last_cell_edit" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
restoredKey |
string | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
conditionalFormattingRules |
ContractConditionalRule[] | no |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
Minimal JSON template
{ "operation": "undo_last_cell_edit", "subsetId": "<subsetId>", "requestedBackend": "native-desktop"}undo_last_range_edit
Section titled “undo_last_range_edit”Undoes the last range edit.
Request
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "undo_last_range_edit" |
yes |
subsetId |
string | yes |
| viewport | ViewportWindow | null | no |
requestedBackend |
ComputeBackendKind | null | no |
Response on success · undo_last_range_edit
| Field | TypeScript type | Req. |
|---|---|---|
| operation | "undo_last_range_edit" |
yes |
subsetId |
string | yes |
| session | ContractSubsetSessionInfo | yes |
supportedSubset |
string | yes |
| delta | DeltaSummary | yes |
workbookHistory |
ContractWorkbookHistoryProjection | yes |
restoredRange |
CellRange | yes |
restoredKeys |
string[] | yes |
changedKeys |
string[] | yes |
dirtyCellCount |
number | yes |
sheetProtected |
boolean | yes |
conditionalFormattingRules |
ContractConditionalRule[] | no |
currentSourceSaveReadiness |
ContractCurrentSourceSaveReadiness | null | no |
activeSheet |
ContractActiveSheetMeta | yes |
| geometry | ContractGeometrySubset | yes |
layoutMetrics |
ContractLayoutMetricsSubset | yes |
recalcNeeded |
boolean | yes |
| viewport | ViewportWindow | yes |
previewCells |
ContractPreviewCell[] | yes |
dataValidationMetadata |
ContractDataValidationMetadata | yes |
tableName |
string | null | no |
tableRef |
string | null | no |
tableDataBodyRef |
string | null | no |
tableMetadata |
ContractTableMetadataProjection | null | no |
workbookTableMetadata |
ContractTableMetadataProjection | null | no |
worksheetAutoFilterMetadata |
ContractWorksheetAutoFilterMetadata | null | no |
hiddenRows |
number[] | yes |
manualHiddenRows |
number[] | yes |
filterHiddenRows |
number[] | yes |
rangeFilterHistoryReplay |
boolean | yes |
Minimal JSON template
{ "operation": "undo_last_range_edit", "subsetId": "<subsetId>", "requestedBackend": "native-desktop"}