# FFilter

> Language fallback: requested `ko-KR`; content is `en-US`.

- Human documentation: [https://docs.univer.ai/ko-KR/reference/facade/filter](https://docs.univer.ai/ko-KR/reference/facade/filter)

- Agent Markdown: [https://docs.univer.ai/ko-KR/reference/facade/filter.md](https://docs.univer.ai/ko-KR/reference/facade/filter.md)

- Requested language: `ko-KR`

- Content language: `en-US`

- Documentation version: `1.0.4`

- Source: [facade/filter.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/filter.mdx)

---

This interface class provides methods to modify the filter settings of a worksheet.

> This class should not be instantiated directly. Use factory methods on `univerAPI` instead.

## Access

Access through:

* [`FRange.createFilter()`](https://docs.univer.ai/ko-KR/reference/facade/range.md#createfilter)
* [`FRange.getFilter()`](https://docs.univer.ai/ko-KR/reference/facade/range.md#getfilter)
* [`FWorksheet.getFilter()`](https://docs.univer.ai/ko-KR/reference/facade/worksheet.md#getfilter)

## Setup

Register [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) 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](https://docs.univer.ai/ko-KR/guides/sheets/getting-started/facade.md).

## `@univerjs/sheets-filter`

### `FFilter.getColumnFilterCriteria`

Get the filter criteria of a column.

```typescript
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**

```ts
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:F10
const 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:F10
let fFilter = fRange.createFilter()

// If the filter already exists, remove it and create a new one
if (!fFilter) {
  fRange.getFilter().remove()
  fFilter = fRange.createFilter()
}

// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
const 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 D
console.log(fFilter.getColumnFilterCriteria(column)) // { colId: 0, filters: { filters: ['1', '5', '9'] } }
console.log(fFilter.getColumnFilterCriteria(column + 1)) // undefined
```

**Types:** [`IFilterColumn`](https://unpkg.com/@univerjs/sheets-filter/lib/types/models/types.d.ts) · [`Nullable`](https://unpkg.com/@univerjs/core/lib/types/shared/types.d.ts)

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.getFilteredOutRows`

Get the filtered out rows by this filter.

```typescript
getFilteredOutRows(): number[]
```

**Returns**

Filtered out rows by this filter.

**Examples**

```ts
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:F10
const 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:F10
let fFilter = fRange.createFilter()

// If the filter already exists, remove it and create a new one
if (!fFilter) {
  fRange.getFilter().remove()
  fFilter = fRange.createFilter()
}

// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
const column = fWorksheet.getRange('C:C').getColumn()
fFilter.setColumnFilterCriteria(column, {
  colId: 0,
  filters: {
    filters: ['1', '5', '9'],
  },
})

// Get the filtered out rows
console.log(fFilter.getFilteredOutRows()) // [1, 2, 3, 5, 6, 7, 9]
```

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.getRange`

Get the range of the filter.

```typescript
getRange(): FRange
```

**Returns**

The range of the filter.

**Examples**

```ts
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`](https://docs.univer.ai/ko-KR/reference/facade/range.md)

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.remove`

Remove the filter from the worksheet.

```typescript
remove(): boolean
```

**Returns**

True if the filter is removed successfully; otherwise, false.

**Examples**

```ts
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`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.removeColumnFilterCriteria`

Clear the filter criteria of a column.

```typescript
removeColumnFilterCriteria(column: number): FFilter
```

**Parameters**

* `column` — Required. The absolute, zero-based worksheet column index, not an index relative to the filter range.

**Returns**

The FFilter instance for chaining.

**Examples**

```ts
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:F10
const 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:F10
let fFilter = fRange.createFilter()

// If the filter already exists, remove it and create a new one
if (!fFilter) {
  fRange.getFilter().remove()
  fFilter = fRange.createFilter()
}

// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
const 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 seconds
setTimeout(() => {
  fFilter.removeColumnFilterCriteria(column)
}, 3000)
```

**Types:** [`FFilter`](https://docs.univer.ai/ko-KR/reference/facade/filter.md)

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.removeFilterCriteria`

Remove the filter criteria of all columns.

```typescript
removeFilterCriteria(): FFilter
```

**Returns**

The FFilter instance for chaining.

**Examples**

```ts
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:F10
const 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:F10
let fFilter = fRange.createFilter()

// If the filter already exists, remove it and create a new one
if (!fFilter) {
  fRange.getFilter().remove()
  fFilter = fRange.createFilter()
}

// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
const 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 seconds
setTimeout(() => {
  fFilter.removeFilterCriteria()
}, 3000)
```

**Types:** [`FFilter`](https://docs.univer.ai/ko-KR/reference/facade/filter.md)

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)

### `FFilter.setColumnFilterCriteria`

Set the filter criteria of a column.

```typescript
setColumnFilterCriteria(column: number, criteria: ISetSheetsFilterCriteriaCommandParams['criteria']): FFilter
```

**Parameters**

* `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**

```ts
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:F10
const 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:F10
let fFilter = fRange.createFilter()

// If the filter already exists, remove it and create a new one
if (!fFilter) {
  fRange.getFilter().remove()
  fFilter = fRange.createFilter()
}

// Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
const column = fWorksheet.getRange('C:C').getColumn()
fFilter.setColumnFilterCriteria(column, {
  colId: 0,
  filters: {
    filters: ['1', '5', '9'],
  },
})
```

**Types:** [`FFilter`](https://docs.univer.ai/ko-KR/reference/facade/filter.md) · [`ISetSheetsFilterCriteriaCommandParams`](https://unpkg.com/@univerjs/sheets-filter/lib/types/commands/commands/sheets-filter.command.d.ts)

**Package:** [`@univerjs/sheets-filter`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets-filter.md) · [Type definitions](https://unpkg.com/@univerjs/sheets-filter/lib/types/facade/f-filter.d.ts)
