FFilter
This interface class provides methods to modify the filter settings of a worksheet.
This class should not be instantiated directly. Use factory methods on
univerAPIinstead.
Access
Access through:
Setup
Register @univerjs/sheets-filter or a preset that includes it. In plugin mode, import @univerjs/sheets-filter/facade. Additional methods below require their listed plugin packages. See Facade setup.
@univerjs/sheets-filter
FFilter.getColumnFilterCriteria
Get the filter criteria of a column.
getColumnFilterCriteria(column: number): Nullable<IFilterColumn>Parameters
column— Required. The absolute, zero-based worksheet column index, not an index relative to the filter range.
Returns
The filter criteria of the column.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')// Set some values of the range C1:F10const fRange = fWorksheet.getRange('C1:F10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a filter on the range C1:F10let fFilter = fRange.createFilter()// If the filter already exists, remove it and create a new oneif (!fFilter) { fRange.getFilter().remove() fFilter = fRange.createFilter()}// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9const column = fWorksheet.getRange('C:C').getColumn()fFilter.setColumnFilterCriteria(column, { colId: 0, filters: { filters: ['1', '5', '9'], },})// Print the filter criteria of the column C and Dconsole.log(fFilter.getColumnFilterCriteria(column)) // { colId: 0, filters: { filters: ['1', '5', '9'] } }console.log(fFilter.getColumnFilterCriteria(column + 1)) // undefinedTypes: IFilterColumn · Nullable
Package: @univerjs/sheets-filter · Type definitions
FFilter.getFilteredOutRows
Get the filtered out rows by this filter.
getFilteredOutRows(): number[]Returns
Filtered out rows by this filter.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')// Set some values of the range C1:F10const fRange = fWorksheet.getRange('C1:F10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a filter on the range C1:F10let fFilter = fRange.createFilter()// If the filter already exists, remove it and create a new oneif (!fFilter) { fRange.getFilter().remove() fFilter = fRange.createFilter()}// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9const column = fWorksheet.getRange('C:C').getColumn()fFilter.setColumnFilterCriteria(column, { colId: 0, filters: { filters: ['1', '5', '9'], },})// Get the filtered out rowsconsole.log(fFilter.getFilteredOutRows()) // [1, 2, 3, 5, 6, 7, 9]Package: @univerjs/sheets-filter · Type definitions
FFilter.getRange
Get the range of the filter.
getRange(): FRangeReturns
The range of the filter.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fFilter = fWorksheet.getFilter()console.log(fFilter?.getRange().getA1Notation())Types: FRange
Package: @univerjs/sheets-filter · Type definitions
FFilter.remove
Remove the filter from the worksheet.
remove(): booleanReturns
True if the filter is removed successfully; otherwise, false.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D14')let fFilter = fRange.createFilter()// If the worksheet already has a filter, remove it and create a new filter.if (!fFilter) { fWorksheet.getFilter().remove() fFilter = fRange.createFilter()}console.log(fFilter)Package: @univerjs/sheets-filter · Type definitions
FFilter.removeColumnFilterCriteria
Clear the filter criteria of a column.
removeColumnFilterCriteria(column: number): FFilterParameters
column— Required. The absolute, zero-based worksheet column index, not an index relative to the filter range.
Returns
The FFilter instance for chaining.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')// Set some values of the range C1:F10const fRange = fWorksheet.getRange('C1:F10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a filter on the range C1:F10let fFilter = fRange.createFilter()// If the filter already exists, remove it and create a new oneif (!fFilter) { fRange.getFilter().remove() fFilter = fRange.createFilter()}// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9const column = fWorksheet.getRange('C:C').getColumn()fFilter.setColumnFilterCriteria(column, { colId: 0, filters: { filters: ['1', '5', '9'], },})// Clear the filter criteria of the column C after 3 secondssetTimeout(() => { fFilter.removeColumnFilterCriteria(column)}, 3000)Types: FFilter
Package: @univerjs/sheets-filter · Type definitions
FFilter.removeFilterCriteria
Remove the filter criteria of all columns.
removeFilterCriteria(): FFilterReturns
The FFilter instance for chaining.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')// Set some values of the range C1:F10const fRange = fWorksheet.getRange('C1:F10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a filter on the range C1:F10let fFilter = fRange.createFilter()// If the filter already exists, remove it and create a new oneif (!fFilter) { fRange.getFilter().remove() fFilter = fRange.createFilter()}// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9const column = fWorksheet.getRange('C:C').getColumn()fFilter.setColumnFilterCriteria(column, { colId: 0, filters: { filters: ['1', '5', '9'], },})// Clear the filter criteria of all columns after 3 secondssetTimeout(() => { fFilter.removeFilterCriteria()}, 3000)Types: FFilter
Package: @univerjs/sheets-filter · Type definitions
FFilter.setColumnFilterCriteria
Set the filter criteria of a column.
setColumnFilterCriteria(column: number, criteria: ISetSheetsFilterCriteriaCommandParams['criteria']): FFilterParameters
column— Required. The absolute, zero-based worksheet column index, not an index relative to the filter range.criteria— Required. The new filter criteria.
Returns
The FFilter instance for chaining.
Examples
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')// Set some values of the range C1:F10const fRange = fWorksheet.getRange('C1:F10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a filter on the range C1:F10let fFilter = fRange.createFilter()// If the filter already exists, remove it and create a new oneif (!fFilter) { fRange.getFilter().remove() fFilter = fRange.createFilter()}// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9const column = fWorksheet.getRange('C:C').getColumn()fFilter.setColumnFilterCriteria(column, { colId: 0, filters: { filters: ['1', '5', '9'], },})Types: FFilter · ISetSheetsFilterCriteriaCommandParams
Package: @univerjs/sheets-filter · Type definitions
How is this guide?