API 参考

FTextFinder

本 API 页面目前提供英文正文。代码签名与标识符不随界面语言变化。

This interface class provides methods to find and replace text in the univer.

Access

Access through:

Setup

Register @univerjs/sheets-find-replace or a preset that includes it. In plugin mode, import @univerjs/sheets-find-replace/facade. Additional methods below require their listed plugin packages. See Facade setup.

@univerjs/sheets-find-replace

FTextFinder.ensureCompleteAsync

Ensure the find operation is completed. Especially when the current sheet changed use this method to ensure the find operation is completed.

TypeScript
ensureCompleteAsync(): Promise<Nullable<IFindComplete>>

Returns

The find complete result.

Examples

TypeScript
// Create a text-finder to find the text '1'.const textFinder = await univerAPI.createTextFinderAsync('1')// Find all cells that contain the text '1'.const matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation())})const fWorkbook = univerAPI.getActiveWorkbook()const sheets = fWorkbook.getSheets()// Change the current sheet to the second sheet.sheets[1]?.activate()// Ensure the find operation is completed of the current sheet.await textFinder.ensureCompleteAsync()const matchCells2 = textFinder.findAll()matchCells2.forEach((cell) => {  console.log(cell.getA1Notation())})

Types: Nullable · IFindComplete · Promise

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.findAll

Get all the matched cells of the current sheet, the current matched cell is the last matched cell. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
findAll(): FRange[]

Returns

All the matched cells.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D10')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 text-finder to find the text '5'.const textFinder = await univerAPI.createTextFinderAsync('5')// Find all cells that contain the text '5'.const matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // D2, C3, B4, A5})

Types: FRange

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.findNext

Get the next matched cell of the current sheet, if exists return the next matched cell and move the current matched cell to the next matched cell. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
findNext(): Nullable<FRange>

Returns

The next matched cell.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D10')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 text-finder to find the text '5'.const textFinder = await univerAPI.createTextFinderAsync('5')console.log(textFinder.getCurrentMatch().getA1Notation()) // current match cell is A5// Find the next matched rangeconst nextMatch = textFinder.findNext()console.log(nextMatch.getA1Notation()) // D2console.log(textFinder.getCurrentMatch().getA1Notation()) // current match cell is D2

Types: FRange · Nullable

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.findPrevious

Get the previous matched cell of the current sheet, if exists return the previous matched cell and move the current matched cell to the previous matched cell. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
findPrevious(): Nullable<FRange>

Returns

The previous matched cell.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D10')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 text-finder to find the text '5'.const textFinder = await univerAPI.createTextFinderAsync('5')console.log(textFinder.getCurrentMatch().getA1Notation()) // current match cell is A5// Find the previous matched range.const previousMatch = textFinder.findPrevious()console.log(previousMatch.getA1Notation()) // B4console.log(textFinder.getCurrentMatch().getA1Notation()) // current match cell is B4

Types: FRange · Nullable

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.getCurrentMatch

Get the current matched cell of the current sheet. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
getCurrentMatch(): Nullable<FRange>

Returns

The current matched cell.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D10')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 text-finder to find the text '5'.const textFinder = await univerAPI.createTextFinderAsync('5')// Get the current matched range.const currentMatch = textFinder.getCurrentMatch()console.log(currentMatch.getA1Notation()) // A5

Types: FRange · Nullable

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.matchCaseAsync

Set the match case option, if true, the find operation will match case, otherwise, the find operation will ignore case. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
matchCaseAsync(matchCase: boolean): Promise<IFTextFinder>

Parameters

  • matchCase — Required. Whether to match case.

Returns

The text-finder instance.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D1')fRange.setValues([['hello univer', 'hello UNIVER', 'HELLO UNIVER', 'HELLO univer']])// Create a text-finder to find the text 'univer'.const textFinder = await univerAPI.createTextFinderAsync('univer')let matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1, B1, C1, D1})// Set the match case.await textFinder.matchCaseAsync(true)matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1, D1})

Types: IFTextFinder · Promise

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.matchEntireCellAsync

Set the match entire cell option, if true, the find operation will match entire cell value, otherwise, the find operation will match part of the cell value. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
matchEntireCellAsync(matchEntireCell: boolean): Promise<IFTextFinder>

Parameters

  • matchEntireCell — Required. Whether to match entire cell value.

Returns

The text-finder instance.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D1')fRange.setValues([['hello univer', 'hello univer 1', 'hello univer 2', 'hello univer 3']])// Create a text-finder to find the text 'hello univer'.const textFinder = await univerAPI.createTextFinderAsync('hello univer')let matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1, B1, C1, D1})// Set the match entire cell.await textFinder.matchEntireCellAsync(true)matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1})

Types: IFTextFinder · Promise

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.matchFormulaTextAsync

Set the match formula text option, if true, the find operation will match formula text, otherwise, the find operation will match value. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
matchFormulaTextAsync(matchFormulaText: boolean): Promise<IFTextFinder>

Parameters

  • matchFormulaText — Required. Whether to match formula text.

Returns

The text-finder instance.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D1')fRange.setValues([['sum', '1', '=SUM(2)', '3']])// Create a text-finder to find the text 'sum'.const textFinder = await univerAPI.createTextFinderAsync('sum')let matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1})// Set the match entire cell.await textFinder.matchFormulaTextAsync(true)matchCells = textFinder.findAll()matchCells.forEach((cell) => {  console.log(cell.getA1Notation()) // A1, C1})

Types: IFTextFinder · Promise

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.replaceAllWithAsync

Replace all the matched text with the given text. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
replaceAllWithAsync(replaceText: string): Promise<number>

Parameters

  • replaceText — Required. The text to replace.

Returns

The count of replaced text.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('A1:D1')fRange.setValues([['hello', 'hello', 'hello', 'hello']])// Create a text-finder to find the text 'hello'.const textFinder = await univerAPI.createTextFinderAsync('hello')// Replace all the matched text with 'hello univer'.const count = await textFinder.replaceAllWithAsync('hello univer')console.log(count) // 4console.log(fRange.getValues()) // [['hello univer', 'hello univer', 'hello univer', 'hello univer']]

Types: Promise

Package: @univerjs/sheets-find-replace · Type definitions

FTextFinder.replaceWithAsync

Replace the current matched text with the given text. If current sheet changed, use await textFinder.ensureCompleteAsync() to ensure the find operation is completed.

TypeScript
replaceWithAsync(replaceText: string): Promise<boolean>

Parameters

  • replaceText — Required. The text to replace.

Returns

Whether the replace is successful.

Throws

If the find operation is not completed.

Examples

TypeScript
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getSheetByName('Sheet1')if (!fWorksheet) throw new Error('fWorksheet is not available')const fRange = fWorksheet.getRange('B1:E1')fRange.setValues([['hello', 'hello', 'hello', 'hello']])// Create a text-finder to find the text 'hello'.const textFinder = await univerAPI.createTextFinderAsync('hello')// Replace the current matched text with 'hello univer'.const replaced = await textFinder.replaceWithAsync('hello univer')console.log(replaced) // trueconsole.log(fRange.getValues()) // [['hello', 'hello', 'hello', 'hello univer']]

Types: Promise

Package: @univerjs/sheets-find-replace · Type definitions

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.