Skip to content
Mog is in active development. The GitHub repo, SDK packages, and community channels are not yet available. Follow for launch updates

ws.filters

WorksheetFilters

Sub-API for filter operations on a worksheet.

22 methods

setAutoFilter

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

Set an auto-filter on the sheet by parsing an A1-style range string. @param range - A1-style range string (e.g. "A1:D100")

createAutoFilter

Promise<void>
createAutoFilter(range: CellRange): Promise<void>;
ParameterTypeRequired
rangeCellRangerequired

Create an auto-filter from a CellRange (position-based). @param range - Range object with start/end row and column

clearAutoFilter

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

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

getAutoFilter

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

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

getForRange

Promise<{ id: string } | null>
getForRange(range: CellRange): Promise<{ id: string } | null>;
ParameterTypeRequired
rangeCellRangerequired

Get the filter overlapping a range, or null if none. @param range - Range to check for filter overlap @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): Promise<void>;
ParameterTypeRequired
colnumberrequired
criteriaColumnFilterCriteriarequired

Set filter criteria for a column on the first auto-filter. @param col - Column index (0-based) @param criteria - Filter criteria to apply

applyDynamicFilter

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

Apply a dynamic filter rule to a column on the first 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. @param col - Column index (0-based) @param rule - Dynamic filter rule to apply

clearColumnFilter

Promise<void>
clearColumnFilter(col: number): Promise<void>;
ParameterTypeRequired
colnumberrequired

Clear filter criteria for a column on the first auto-filter. @param col - Column index (0-based)

getUniqueValues

Promise<any[]>
getUniqueValues(col: number): Promise<any[]>;
ParameterTypeRequired
colnumberrequired

Get unique values in a column (for filter dropdowns). Uses the first auto-filter. @param col - Column index (0-based) @returns Array of unique values

setCriteria

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

Set filter criteria for a column using filter ID. @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

Clear filter criteria for a column. @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

Get unique values for a filter column. @param filterId - Filter ID @param col - Column index (0-based) @returns Array of unique values

list

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

List all filters in the sheet. @returns Array of 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[]>;

List all filters with resolved numeric ranges and column filters. Single bridge call — avoids the N+1 pattern. @returns Array of detailed filter info objects

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