Skip to content
SumOfficeSumOfficeSumOffice

Data, filters, and objects

Filters, subtotals, data cleanup, tables, text import, data validation, slicers, and form controls. Operations on this page: 23.

Filters, subtotals, data cleanup, tables, text import, data validation, slicers, and form controls. Terms are in the glossary.

Plans an advanced filter — “Data” → “Advanced”. The operation only reads: it returns a plan of which rows to hide or what to copy where, and your side applies it through the usual editing paths.

Request

Field TypeScript type Req.
operation "advanced_filter_plan" yes
subsetId string yes
action ContractAdvancedFilterAction yes
listRange CellRange yes
criteriaRange CellRange | null no
copyToRange CellRange | null no
uniqueRecordsOnly boolean no
requestedBackend ComputeBackendKind | null no

Response on success · advanced_filter_plan

Field TypeScript type Req.
operation "advanced_filter_plan" yes
matchedRows number[] yes
hiddenRows number[] yes
projectionCells ContractAdvancedFilterProjectedCell[] yes
outputRange CellRange | null no
sourceRowCount number yes
resultRowCount number yes
criteriaRowCount number yes
uniqueRecordsOnly boolean yes
formulaCriteriaUsed boolean yes

Minimal JSON template

{
"operation": "advanced_filter_plan",
"subsetId": "<subsetId>",
"action": "<ContractAdvancedFilterAction>",
"listRange": "<CellRange>",
"requestedBackend": "native-desktop"
}

Applies an outline subtotal.

Request

Field TypeScript type Req.
operation "apply_outline_subtotal" yes
subsetId string yes
range CellRange yes
action ContractOutlineSubtotalAction yes
axis ContractOutlineAxis | null no
level number | null no
subtotal ContractSubtotalOptions | null no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · apply_outline_subtotal

Field TypeScript type Req.
operation "apply_outline_subtotal" yes
subsetId string yes
session ContractSubsetSessionInfo yes
supportedSubset string yes
delta DeltaSummary yes
action ContractOutlineSubtotalAction yes
didChange boolean yes
outlineState ContractOutlineSubtotalState yes
layoutMetrics ContractLayoutMetricsSubset yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes

Minimal JSON template

{
"operation": "apply_outline_subtotal",
"subsetId": "<subsetId>",
"range": "<CellRange>",
"action": "<ContractOutlineSubtotalAction>",
"requestedBackend": "native-desktop"
}

Applies a range filter.

Request

Field TypeScript type Req.
operation "apply_range_filter" yes
subsetId string yes
range CellRange yes
action ContractRangeFilterAction no
targetColumn number | null no
criteria ContractRangeFilterColumnCriteria[] no
headerPolicy ContractRemoveDuplicatesHeaderPolicy no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · apply_range_filter

Field TypeScript type Req.
operation "apply_range_filter" yes
subsetId string yes
delta DeltaSummary yes
action ContractRangeFilterAction yes
criteria ContractRangeFilterColumnCriteria[] yes
hiddenRows number[] yes
manualHiddenRows number[] yes
filterHiddenRows number[] yes
hiddenRowCount number yes
visibleRowCount number yes
workbookHistory ContractWorkbookHistoryProjection yes
recalcNeeded boolean yes

Minimal JSON template

{
"operation": "apply_range_filter",
"subsetId": "<subsetId>",
"range": "<CellRange>",
"requestedBackend": "native-desktop"
}

Commits a delimited-text import.

Request

Field TypeScript type Req.
operation "commit_delimited_text_import" yes
subsetId string yes
edits CellInputEdit[] yes
destination ContractDelimitedImportDestination yes
expectedRevision number | null no
readOnly boolean no
cancelled boolean no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · commit_delimited_text_import

Field TypeScript type Req.
operation "commit_delimited_text_import" yes
subsetId string yes
createdSheet boolean yes
sheetKey string yes
appliedEditCount number yes
mutationCount number yes
workbookHistory ContractWorkbookHistoryProjection yes
projection ComputeResponsePayload yes

Minimal JSON template

{
"operation": "commit_delimited_text_import",
"subsetId": "<subsetId>",
"edits": [],
"destination": "<ContractDelimitedImportDestination>",
"requestedBackend": "native-desktop"
}

Data cleanup from the “Data” tab: text to columns, removing duplicates, and similar. It runs in two steps — a preview, then applying it.

Request

Field TypeScript type Req. Note from the contract
operation "data_cleanup" yes
subsetId string yes
action ContractDataCleanupAction yes
intent ContractDataCleanupIntent yes
consecutiveDelimitersAsOne boolean no Treat several consecutive delimiters as one — when parsing text to columns.
locale string | null no The language and regional rules the core uses to recognize a value’s type in General format — for example, a comma as the decimal separator for ru-RU.
expectedRevision number | null no The workbook’s own revision, as seen by the preview. The operation runs in two steps, and on apply, a mismatch is rejected before the edit happens.
previewToken string | null no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · data_cleanup

Field TypeScript type Req.
operation "data_cleanup" yes
subsetId string yes
session ContractSubsetSessionInfo yes
delta DeltaSummary yes
kind "text_to_columns" | “remove_duplicates” | “remove_duplicates_copy” yes
previewToken string yes
applied boolean yes
sourceRange CellRange yes
outputRange CellRange yes
duplicateCount number yes
remainingCount number yes
headerRowCount number yes
resultRowCount number yes
resultColCount number yes
copyOutput boolean yes
duplicateRowSpans ContractDataCleanupRowSpan[] yes
audit ContractDataCleanupAudit yes
tableName string | null no
tableRef string | null no
tableDataBodyRef string | null no
previewRows ContractDataCleanupPreviewRow[] yes
workbookHistory ContractWorkbookHistoryProjection yes
changedKeys string[] yes
dirtyCellCount number yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes

Minimal JSON template

{
"operation": "data_cleanup",
"subsetId": "<subsetId>",
"action": "<ContractDataCleanupAction>",
"intent": "<ContractDataCleanupIntent>",
"requestedBackend": "native-desktop"
}

Request

Field TypeScript type Req.
operation “drawing_object_action” yes
subsetId string yes
action ContractDrawingObjectAction yes
expectedRevision number yes
readOnly boolean no
viewport ViewportWindow | null no

Response on success · drawing_object_action

Field TypeScript type Req.
operation “drawing_object_action” yes
subsetId string yes
changedStableIds string[] yes
regroupGroupId string | null no
regroupMemberStableIds string[] yes
dirty boolean yes
authoritativeRevision number yes
historyOwner “drawing_objects” yes
workbookHistory ContractWorkbookHistoryProjection yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
surfaceObjects ContractSheetObject[] yes
objectInventory ContractWorkbookObjectInventoryEntry[] yes
inkProjection ContractReviewInkProjectionItem[] yes
layoutMetrics ContractLayoutMetricsSubset no

Minimal JSON template

{
"operation": "drawing_object_action",
"subsetId": "<subsetId>",
"action": "<ContractDrawingObjectAction>",
"expectedRevision": 0
}

Response on success · drawing_object_history_replay

Field TypeScript type Req.
operation “drawing_object_history_replay” yes
subsetId string yes
direction ContractWorkbookHistoryDirection yes
dirty boolean yes
workbookHistory ContractWorkbookHistoryProjection yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
surfaceObjects ContractSheetObject[] yes
objectInventory ContractWorkbookObjectInventoryEntry[] yes
inkProjection ContractReviewInkProjectionItem[] yes
layoutMetrics ContractLayoutMetricsSubset no

Evaluates a value against validation rules.

Request

Field TypeScript type Req. Note from the contract
operation "evaluate_data_validation_input" yes
subsetId string yes
inputs ContractDataValidationRawInput[] yes
companionEdits CellInputEdit[] no
programmaticEdits CellInputEdit[] no The core first expands adjacent fill and drag-fill, and only then validates each destination cell.
commit boolean no
expectedRevision number | null no An optional race-condition check when commit: true. On a mismatch, the refusal apply-cell-edits-stale-revision comes back before the cells, history, or revision change. A check-only call with commit: false never becomes an edit.
continuation ContractDataValidationContinuation | null no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · evaluate_data_validation_input

Field TypeScript type Req.
operation "evaluate_data_validation_input" yes
subsetId string yes
session ContractSubsetSessionInfo yes
verdict ContractDataValidationVerdictKind yes
verdicts ContractDataValidationVerdict[] yes
continuationToken string | null no
allowedDecisions ContractDataValidationDecision[] no
committed ComputeResponsePayload | null no

Minimal JSON template

{
"operation": "evaluate_data_validation_input",
"subsetId": "<subsetId>",
"inputs": [],
"requestedBackend": "native-desktop"
}

Request

Field TypeScript type Req.
operation “external-range-properties-apply” yes
subsetId string yes
expectedRevision number no
identity ContractExternalRangeIdentity yes
properties ContractExternalRangeProperties yes

Response on success · external-range-properties-apply

Field TypeScript type Req.
operation “external-range-properties-apply” yes
applied boolean yes
reason string no
detail string no
workbookHistory ContractWorkbookHistoryProjection no
ranges ContractExternalRangeEntry[] yes

Minimal JSON template

{
"operation": "external-range-properties-apply",
"subsetId": "<subsetId>",
"identity": "<ContractExternalRangeIdentity>",
"properties": "<ContractExternalRangeProperties>"
}

Request

Field TypeScript type Req.
operation “external-range-properties-inventory” yes
subsetId string yes

Response on success · external-range-properties-inventory

Field TypeScript type Req.
operation “external-range-properties-inventory” yes
ranges ContractExternalRangeEntry[] yes

Minimal JSON template

{
"operation": "external-range-properties-inventory",
"subsetId": "<subsetId>"
}

Finishes a Selection Pane batch.

Request

Field TypeScript type Req.
operation "finalize_object_selection_pane_package" yes
subsetId string yes
sourcePackageBytesBase64 string yes
candidatePackageBytesBase64 string yes
objectProtectionMutations ContractSheetObjectMutationIntent[] yes
commands ContractObjectSelectionPanePackageCommand[] yes
drawingTextEdits ContractDrawingTextEditSemantics[] yes
adoptCurrentSource boolean yes
requestedBackend ComputeBackendKind | null no

Response on success · finalize_object_selection_pane_package

Field TypeScript type Req.
operation "finalize_object_selection_pane_package" yes
packageBytesBase64 string yes
byteCount number yes
mutationCount number yes
authoritativeRevision number yes
validatedDrawingTextCount number yes
adoptedCurrentSource boolean yes

Minimal JSON template

{
"operation": "finalize_object_selection_pane_package",
"subsetId": "<subsetId>",
"sourcePackageBytesBase64": "<base64>",
"candidatePackageBytesBase64": "<base64>",
"objectProtectionMutations": [],
"commands": [],
"drawingTextEdits": [],
"adoptCurrentSource": false,
"requestedBackend": "native-desktop"
}

Form controls on a sheet — checkboxes, option buttons, list boxes: adding, configuring, and removing.

Request

Field TypeScript type Req.
operation "form_controls" yes
subsetId string yes
intent ContractFormControlsAction yes
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · form_controls

Field TypeScript type Req.
operation "form_controls" yes
subsetId string yes
session ContractSubsetSessionInfo yes
delta DeltaSummary yes
action string yes
status string yes
controls ContractFormControlView[] yes
objectInventory ContractWorkbookObjectInventoryEntry[] yes
linkedCellWrite ContractFormControlLinkedCellWrite | null no
changedKeys string[] yes
dirtyCellCount number yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes

Minimal JSON template

{
"operation": "form_controls",
"subsetId": "<subsetId>",
"intent": "<ContractFormControlsAction>",
"requestedBackend": "native-desktop"
}

Request

Field TypeScript type Req.
operation “mutate_table_hyperlink_artifacts” yes
subsetId string yes
action ContractTableHyperlinkAction yes
expectedRevision number yes
readOnly boolean no
protected boolean no
viewport ViewportWindow | null no

Response on success · mutate_table_hyperlink_artifacts

Field TypeScript type Req.
operation “mutate_table_hyperlink_artifacts” yes
subsetId string yes
session ContractSubsetSessionInfo yes
delta DeltaSummary yes
action string yes
tableMetadata ContractTableMetadataProjection yes
workbookTableMetadata ContractTableMetadataProjection yes
hyperlinkMetadata ContractHyperlinkMetadataProjection yes
workbookHyperlinkMetadata ContractHyperlinkMetadataProjection yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
workbookHistory ContractWorkbookHistoryProjection yes

Minimal JSON template

{
"operation": "mutate_table_hyperlink_artifacts",
"subsetId": "<subsetId>",
"action": "<ContractTableHyperlinkAction>",
"expectedRevision": 0
}

Changes a table’s model.

Request

Field TypeScript type Req.
operation "mutate_table_model" yes
subsetId string yes
mutation ContractTableModelMutation yes
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · mutate_table_model

Field TypeScript type Req.
operation "mutate_table_model" yes
subsetId string yes
session ContractSubsetSessionInfo yes
delta DeltaSummary yes
action string yes
tableMetadata ContractTableMetadataProjection yes
workbookTableMetadata ContractTableMetadataProjection yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
workbookHistory ContractWorkbookHistoryProjection yes

Minimal JSON template

{
"operation": "mutate_table_model",
"subsetId": "<subsetId>",
"mutation": "<ContractTableModelMutation>",
"requestedBackend": "native-desktop"
}

Opens creation of an embedded document object.

Request

Field TypeScript type Req.
operation "open_document_object_creation" yes
subsetId string yes
sheetPath string yes
creation ContractOpenDocumentObjectCreation yes
readOnly boolean no
expectedRevision number | null no
requestedBackend ComputeBackendKind | null no

Response on success · open_document_object_creation

Field TypeScript type Req.
operation "open_document_object_creation" yes
subsetId string yes
createdObject ContractCreatedDocumentObject yes
byteCount number yes
dirty boolean yes
undoDepth number yes
redoDepth number yes
authoritativeRevision number yes
historyOwner "drawing_objects" yes

Minimal JSON template

{
"operation": "open_document_object_creation",
"subsetId": "<subsetId>",
"sheetPath": "<sheetPath>",
"creation": "<ContractOpenDocumentObjectCreation>",
"requestedBackend": "native-desktop"
}

Reads data validation rules.

Request

Field TypeScript type Req.
operation "read_data_validation_rules" yes
subsetId string yes
sheetKey string yes
range CellRange | null no
requestedBackend ComputeBackendKind | null no

Response on success · read_data_validation_rules

Field TypeScript type Req.
operation "read_data_validation_rules" yes
subsetId string yes
session ContractSubsetSessionInfo yes
sheetKey string yes
dataValidationMetadata ContractDataValidationMetadata yes

Minimal JSON template

{
"operation": "read_data_validation_rules",
"subsetId": "<subsetId>",
"sheetKey": "<sheetPath>",
"requestedBackend": "native-desktop"
}

Sets data validation rules.

Request

Field TypeScript type Req. Note from the contract
operation "set_data_validation_rules" yes
subsetId string yes
sheetKey string yes
rules ContractDataValidationRuleIntent[] yes
sourceLocale string | null no The locale that applies only to this request: the core uses it to parse the source entry in a list rule.
expectedRevision number | null no Rejects writing rules from a stale state — before the markup, the unsaved flag, history, or revision change.
requestedBackend ComputeBackendKind | null no

Response on success · set_data_validation_rules

Field TypeScript type Req.
operation "set_data_validation_rules" yes
subsetId string yes
session ContractSubsetSessionInfo yes
sheetKey string yes
appliedRuleCount number yes
dataValidationMetadata ContractDataValidationMetadata yes
workbookHistory ContractWorkbookHistoryProjection yes

Minimal JSON template

{
"operation": "set_data_validation_rules",
"subsetId": "<subsetId>",
"sheetKey": "<sheetPath>",
"rules": [],
"requestedBackend": "native-desktop"
}

Sets whether a range filter is enabled.

Request

Field TypeScript type Req. Note from the contract
operation "set_range_filter_enabled" yes The same as the “Data ▸ Filter” button: turns AutoFilter on or off for the selected table or sheet.
subsetId string yes
range CellRange yes
enabled boolean yes
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · set_range_filter_enabled

Field TypeScript type Req.
operation "set_range_filter_enabled" yes
subsetId string yes
delta DeltaSummary yes
autoFilterRef string no
unhiddenRowCount number yes
targetKind "range" | “table” yes
tableMetadata ContractTableMetadataProjection yes
workbookTableMetadata ContractTableMetadataProjection yes
workbookHistory ContractWorkbookHistoryProjection yes
recalcNeeded boolean yes

Minimal JSON template

{
"operation": "set_range_filter_enabled",
"subsetId": "<subsetId>",
"range": "<CellRange>",
"enabled": false,
"requestedBackend": "native-desktop"
}

Slicers and timelines: adding, configuring, and removing the visual controls used to filter pivot tables.

Request

Field TypeScript type Req.
operation "slicer_timeline" yes
subsetId string yes
intent ContractSlicerTimelineAction yes
expectedCacheGeneration number | null no
requestGeneration number | null no
viewport ViewportWindow | null no
requestedBackend ComputeBackendKind | null no

Response on success · slicer_timeline

Field TypeScript type Req.
operation "slicer_timeline" yes
subsetId string yes
session ContractSubsetSessionInfo yes
delta DeltaSummary yes
action string yes
status string yes
controls ContractSlicerTimelineControlView[] yes
changedRows number[] yes
hiddenRows number[] yes
refreshTargets string[] yes
connectedTargets ContractSlicerTimelineTargetView[] yes
filterConnections ContractPivotFilterConnectionView[] yes
refreshStatus ContractPivotRefreshStatusView | null no
dirtyCellCount number yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
recalcNeeded boolean yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes

Minimal JSON template

{
"operation": "slicer_timeline",
"subsetId": "<subsetId>",
"intent": "<ContractSlicerTimelineAction>",
"requestedBackend": "native-desktop"
}

Sorts the filter pointer’s update.

Request

Field TypeScript type Req.
operation "sort_filter_index_update" yes
subsetId string yes
range CellRange yes
requestedBackend ComputeBackendKind | null no

Response on success · sort_filter_index_update

Field TypeScript type Req.
operation "sort_filter_index_update" yes
delta DeltaSummary yes
indexVersion number yes

Minimal JSON template

{
"operation": "sort_filter_index_update",
"subsetId": "<subsetId>",
"range": "<CellRange>",
"requestedBackend": "native-desktop"
}

Request

Field TypeScript type Req.
operation “sparkline_actions” yes
subsetId string yes
mode ContractSparklinePlanMode yes
action ContractSparklineAction yes
expectedRevision number yes
readOnly boolean no
viewport ViewportWindow | null no

Response on success · sparkline_actions

Field TypeScript type Req.
operation “sparkline_actions” yes
subsetId string yes
mode ContractSparklinePlanMode yes
applied boolean yes
dirty boolean yes
authoritativeRevision number yes
workbookHistory ContractWorkbookHistoryProjection yes
projection ContractSparklineProjectionEntry[] yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
layoutMetrics ContractLayoutMetricsSubset no

Minimal JSON template

{
"operation": "sparkline_actions",
"subsetId": "<subsetId>",
"mode": "<ContractSparklinePlanMode>",
"action": "<ContractSparklineAction>",
"expectedRevision": 0
}

Response on success · sparkline_history_replay

Field TypeScript type Req.
operation “sparkline_history_replay” yes
subsetId string yes
direction ContractWorkbookHistoryDirection yes
dirty boolean yes
workbookHistory ContractWorkbookHistoryProjection yes
projection ContractSparklineProjectionEntry[] yes
activeSheet ContractActiveSheetMeta yes
geometry ContractGeometrySubset yes
viewport ViewportWindow yes
previewCells ContractPreviewCell[] yes
layoutMetrics ContractLayoutMetricsSubset no

Refreshes a table’s model.

Request

Field TypeScript type Req.
operation "update_table_model" yes
subsetId string yes
table ContractTableMetadataEntry yes
requestedBackend ComputeBackendKind | null no

Response on success · update_table_model

Field TypeScript type Req.
operation "update_table_model" yes
subsetId string yes
stableId string yes
tableCount number yes
tableMetadata ContractTableMetadataProjection yes
workbookTableMetadata ContractTableMetadataProjection yes

Minimal JSON template

{
"operation": "update_table_model",
"subsetId": "<subsetId>",
"table": "<ContractTableMetadataEntry>",
"requestedBackend": "native-desktop"
}

Documentation assistant

Answers are assembled from the documentation and may be inaccurate — check the sources.