Skip to content

ws.filters

WorksheetFilters

Sub-API for filter operations on a worksheet.

26 methods

add

Promise<void>
add(range: string | CellRange): Promise<void>;
ParameterTypeRequired
rangestring | CellRangerequired

Add an auto-filter to the sheet. @param range - A1-style range string (e.g. "A1:D100") or a CellRange object

applyAdvanced

Promise<AdvancedFilterResult>
applyAdvanced(options: AdvancedFilterOptions): Promise<AdvancedFilterResult>;
ParameterTypeRequired
optionsAdvancedFilterOptionsrequired

Apply an Excel Advanced Filter. Range strings are passed to Rust as entered; parsing, validation, criteria evaluation, row visibility, copy output, and viewport patches are owned by the compute layer.

byColor

Promise<void>
byColor(col: number, opts: FilterByColorOptions): Promise<void>;
ParameterTypeRequired
colnumberrequired
optsFilterByColorOptionsrequired

Filter a column by cell or font color. Convenience wrapper over {@link setColumnFilter} with a color predicate — rows whose column-`col` cell does not match the requested color are hidden. When `opts.filterId` is omitted, targets the first auto-filter on the sheet. @param col - Column index (0-based, absolute) @param opts - Color filter options

get

Promise<FilterState | null>
get(): Promise<FilterState | null>;

Get the current auto-filter state. @returns The filter state, or null if no auto-filter is set

clear

Promise<void>
clear(): Promise<void>;

Clear the auto-filter from the sheet. Removes all filters, not just criteria.

setAutoFilter

Promise<AutoFilterSetReceipt>
setAutoFilter(range: string): Promise<AutoFilterSetReceipt>;
ParameterTypeRequired
rangestringrequired

@deprecated Use {@link add} instead. Set an auto-filter on the sheet by parsing an A1-style range string. @param range - A1-style range string (e.g. "A1:D100")

clearAutoFilter

Promise<AutoFilterClearReceipt>
clearAutoFilter(): Promise<AutoFilterClearReceipt>;

@deprecated Use {@link clear} instead. Clear the auto-filter from the sheet. Removes all filters, not just criteria.

getAutoFilter

Promise<FilterState | null>
getAutoFilter(): Promise<FilterState | null>;

@deprecated Use {@link get} instead. Get the current auto-filter state. @returns The filter state, or null if no auto-filter is set

getForRange

Promise<{ id: string; filterKind: 'autoFilter' | 'tableFilter' | 'advancedFilter' } | null>
getForRange(range: string): Promise<{ id: string; filterKind: 'autoFilter' | 'tableFilter' | 'advancedFilter' } | null>;
ParameterTypeRequired
rangestringrequired

Get the filter overlapping a range, or null if none. @param range - A1-style range string (e.g. "A1:D100") @returns Object with filter ID if found, or null

remove

Promise<void>
remove(filterId: string): Promise<void>;
ParameterTypeRequired
filterIdstringrequired

Remove a specific filter by its ID. @param filterId - Filter ID to remove

setColumnFilter

Promise<void>
setColumnFilter(col: number, criteria: ColumnFilterCriteria, filterId?: string): Promise<void>;
ParameterTypeRequired
colnumberrequired
criteriaColumnFilterCriteriarequired
filterIdstringoptional

Set filter criteria for a column on an auto-filter. When `filterId` is omitted, targets the first auto-filter (convenience shorthand). When provided, targets the specified filter directly. @param col - Column index (0-based) @param criteria - Filter criteria to apply @param filterId - Optional filter ID; defaults to first auto-filter

applyDynamicFilter

Promise<void>
applyDynamicFilter(col: number, rule: DynamicFilterRule, filterId?: string): Promise<void>;
ParameterTypeRequired
colnumberrequired
ruleDynamicFilterRulerequired
filterIdstringoptional

Apply a dynamic filter rule to a column on an auto-filter. Dynamic filters are pre-defined rules resolved against live data, such as "above average", "below average", or date-relative rules like "today", "this month", etc. When `filterId` is omitted, targets the first auto-filter. @param col - Column index (0-based) @param rule - Dynamic filter rule to apply @param filterId - Optional filter ID; defaults to first auto-filter

clearColumnFilter

Promise<void>
clearColumnFilter(col: number, filterId?: string): Promise<void>;
ParameterTypeRequired
colnumberrequired
filterIdstringoptional

Clear filter criteria for a column on an auto-filter. When `filterId` is omitted, targets the first auto-filter. When provided, targets the specified filter directly. @param col - Column index (0-based) @param filterId - Optional filter ID; defaults to first auto-filter

getUniqueValues

Promise<any[]>
getUniqueValues(col: number, filterId?: string): Promise<any[]>;
ParameterTypeRequired
colnumberrequired
filterIdstringoptional

Get unique values in a column (for filter dropdowns). When `filterId` is omitted, uses the first auto-filter. @param col - Column index (0-based) @param filterId - Optional filter ID; defaults to first auto-filter @returns Array of unique values

setCriteria

Promise<void>
setCriteria(filterId: string, col: number, criteria: ColumnFilterCriteria): Promise<void>;
ParameterTypeRequired
filterIdstringrequired
colnumberrequired
criteriaColumnFilterCriteriarequired

@deprecated Use {@link setColumnFilter} instead. Set filter criteria for a column on a specific filter by ID (advanced). @param filterId - Filter ID @param col - Column index (0-based) @param criteria - Filter criteria to apply

clearCriteria

Promise<void>
clearCriteria(filterId: string, col: number): Promise<void>;
ParameterTypeRequired
filterIdstringrequired
colnumberrequired

@deprecated Use {@link clearColumnFilter} instead. Clear filter criteria for a column on a specific filter by ID (advanced). @param filterId - Filter ID @param col - Column index (0-based)

clearAllCriteria

Promise<void>
clearAllCriteria(filterId: string): Promise<void>;
ParameterTypeRequired
filterIdstringrequired

Clear all filter criteria for a filter. Removes filters from all columns but keeps the filter structure intact. @param filterId - Filter ID

apply

Promise<void>
apply(filterId: string): Promise<void>;
ParameterTypeRequired
filterIdstringrequired

Apply a filter (Rust evaluates criteria and updates row visibility). @param filterId - Filter ID to apply

getInfo

Promise<FilterDetailInfo | null>
getInfo(filterId: string): Promise<FilterDetailInfo | null>;
ParameterTypeRequired
filterIdstringrequired

Get detailed filter info including resolved range and column filters. @param filterId - Filter ID @returns Detailed filter info, or null if not found

getFilterUniqueValues

Promise<any[]>
getFilterUniqueValues(filterId: string, col: number): Promise<any[]>;
ParameterTypeRequired
filterIdstringrequired
colnumberrequired

@deprecated Use {@link getUniqueValues} instead. Get unique values for a filter column. @param filterId - Filter ID @param col - Column index (0-based) @returns Array of unique values

list

Promise<FilterDetailInfo[]>
list(): Promise<FilterDetailInfo[]>;

List all filters in the sheet with full detail (resolved numeric ranges and converted column-filter criteria). @returns Array of detailed filter info objects

isEnabled

Promise<boolean>
isEnabled(): Promise<boolean>;

Whether any auto-filter exists on the sheet. @returns true if at least one filter is present

isDataFiltered

Promise<boolean>
isDataFiltered(): Promise<boolean>;

Whether any filter on the sheet has active criteria applied. Returns true if at least one filter has non-empty column filters, meaning some rows may be hidden. @returns true if any column filter criteria are set

listDetails

Promise<FilterDetailInfo[]>
listDetails(): Promise<FilterDetailInfo[]>;

@deprecated Use {@link list} instead, which now returns full detail. Alias kept for backward compatibility.

getSortState

Promise<FilterSortState | null>
getSortState(filterId: string): Promise<FilterSortState | null>;
ParameterTypeRequired
filterIdstringrequired

Get the sort state for a filter. @param filterId - Filter ID @returns Sort state, or null if no sort state set

setSortState

Promise<void>
setSortState(filterId: string, state: FilterSortState): Promise<void>;
ParameterTypeRequired
filterIdstringrequired
stateFilterSortStaterequired

Set the sort state for a filter. @param filterId - Filter ID @param state - Sort state to set