ws.filters
WorksheetFilters
Sub-API for filter operations on a worksheet.
26 methods
add
→ Promise<void>add(range: string | CellRange): Promise<void>;| Parameter | Type | Required |
|---|---|---|
| range | string | CellRange | required |
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>;| Parameter | Type | Required |
|---|---|---|
| options | AdvancedFilterOptions | required |
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>;| Parameter | Type | Required |
|---|---|---|
| col | number | required |
| opts | FilterByColorOptions | required |
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>;| Parameter | Type | Required |
|---|---|---|
| range | string | required |
@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>;| Parameter | Type | Required |
|---|---|---|
| range | string | required |
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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
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>;| Parameter | Type | Required |
|---|---|---|
| col | number | required |
| criteria | ColumnFilterCriteria | required |
| filterId | string | optional |
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>;| Parameter | Type | Required |
|---|---|---|
| col | number | required |
| rule | DynamicFilterRule | required |
| filterId | string | optional |
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>;| Parameter | Type | Required |
|---|---|---|
| col | number | required |
| filterId | string | optional |
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[]>;| Parameter | Type | Required |
|---|---|---|
| col | number | required |
| filterId | string | optional |
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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
| col | number | required |
| criteria | ColumnFilterCriteria | required |
@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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
| col | number | required |
@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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
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[]>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
| col | number | required |
@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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
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>;| Parameter | Type | Required |
|---|---|---|
| filterId | string | required |
| state | FilterSortState | required |
Set the sort state for a filter. @param filterId - Filter ID @param state - Sort state to set