Filter
| Packages | @univerjs/sheets-filter |
|---|
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.
Overview
@univerjs/sheets-filter
| Method | Description |
|---|---|
getColumnFilterCriteria | Get the filter criteria of a column |
getFilteredOutRows | Get the filtered out rows by this filter |
getRange | Get the range of the filter |
remove | Remove the filter from the worksheet |
removeColumnFilterCriteria | Clear the filter criteria of a column |
removeFilterCriteria | Remove the filter criteria of all columns |
setColumnFilterCriteria | Set the filter criteria of a column |
APIs
Getters & Queries
getColumnFilterCriteria
Get the filter criteria of a column.
Signature
TypeScript
getColumnFilterCriteria(column: number): Nullable<IFilterColumn>Parameters
columnnumber— No description
Returns
any— The filter criteria of the column.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();// 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)); // undefined@univerjs/sheets-filter
getFilteredOutRows
Get the filtered out rows by this filter.
Signature
TypeScript
getFilteredOutRows(): number[]Returns
number[]— Filtered out rows by this filter.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();// 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]@univerjs/sheets-filter
getRange
Get the range of the filter.
Signature
TypeScript
getRange(): FRangeReturns
FRange— The range of the filter.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const fFilter = fWorksheet.getFilter();console.log(fFilter?.getRange().getA1Notation());@univerjs/sheets-filter
Setters & Modifiers
setColumnFilterCriteria
Set the filter criteria of a column.
Signature
TypeScript
setColumnFilterCriteria(column: number, criteria: ISetSheetsFilterCriteriaCommandParams['criteria']): FFilterParameters
columnnumber— The column index (0-based) to set the filter criteria for.criteriaISetSheetsFilterCriteriaCommandParams['criteria']— The filter criteria to apply.
Returns
FFilter— The FFilter instance for chaining.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();// 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'], },});@univerjs/sheets-filter
Actions & Operations
remove
Remove the filter from the worksheet.
Signature
TypeScript
remove(): booleanReturns
boolean— True if the filter is removed successfully; otherwise, false.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();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);@univerjs/sheets-filter
removeColumnFilterCriteria
Clear the filter criteria of a column.
Signature
TypeScript
removeColumnFilterCriteria(column: number): FFilterParameters
columnnumber— No description
Returns
FFilter— The FFilter instance for chaining.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();// 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);@univerjs/sheets-filter
removeFilterCriteria
Remove the filter criteria of all columns.
Signature
TypeScript
removeFilterCriteria(): FFilterReturns
FFilter— The FFilter instance for chaining.
Examples
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();// 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);@univerjs/sheets-filterHow is this guide?