# Buscar y reemplazar

- Human documentation: [https://docs.univer.ai/es-ES/guides/sheets/features/find-replace](https://docs.univer.ai/es-ES/guides/sheets/features/find-replace)

- Agent Markdown: [https://docs.univer.ai/es-ES/guides/sheets/features/find-replace.md](https://docs.univer.ai/es-ES/guides/sheets/features/find-replace.md)

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

- Source: [sheets/features/find-replace.es-ES.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/sheets/features/find-replace.es-ES.mdx)

---

#### Package metadata

```json
{
  "mobile": true,
  "preset": [
    {
      "client": "@univerjs/preset-sheets-find-replace",
      "locale": "@univerjs/preset-sheets-find-replace/locales/en-US",
      "style": "@univerjs/preset-sheets-find-replace/lib/index.css"
    }
  ],
  "plugins": [
    {
      "client": "@univerjs/find-replace",
      "locale": "@univerjs/find-replace/locale/en-US",
      "style": "@univerjs/find-replace/lib/index.css"
    },
    {
      "client": "@univerjs/sheets-find-replace",
      "facade": "@univerjs/sheets-find-replace/facade"
    }
  ],
  "server": false
}
```

La función Buscar y reemplazar permite a los usuarios buscar rápidamente contenido específico en hojas de cálculo y reemplazarlo, admitiendo varias opciones de coincidencia para ayudar a los usuarios a procesar datos de manera eficiente.

Abra el panel de búsqueda y reemplazo en el ejemplo completo de plugins siguiente para probar esta función.

> Interactive example: [Open the playground](/playground/sheets/basic-via-plugin)

## Complemento Modo

### Instalación

#### npm

```bash
npm install @univerjs/find-replace @univerjs/sheets-find-replace
```

#### pnpm

```bash
pnpm add @univerjs/find-replace @univerjs/sheets-find-replace
```

#### yarn

```bash
yarn add @univerjs/find-replace @univerjs/sheets-find-replace
```

#### bun

```bash
bun add @univerjs/find-replace @univerjs/sheets-find-replace
```

### Uso

```typescript
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { UniverFindReplacePlugin } from '@univerjs/find-replace' // [!code ++]
import FindReplaceEnUS from '@univerjs/find-replace/locale/en-US' // [!code ++]
import { UniverSheetsFindReplacePlugin } from '@univerjs/sheets-find-replace' // [!code ++]
import '@univerjs/find-replace/lib/index.css' // [!code ++]
import '@univerjs/sheets-find-replace/facade' // [!code ++]

const univer = new Univer({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      FindReplaceEnUS, // [!code ++]
    ),
  },
})

univer.registerPlugin(UniverFindReplacePlugin) // [!code ++]
univer.registerPlugin(UniverSheetsFindReplacePlugin) // [!code ++]
```

## Compatibilidad móvil

Configure primero el [editor móvil](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation.md#mobile-support). En la inicialización en modo plugin de esta página, sustituya los registros de escritorio siguientes por las exportaciones móviles de los mismos paquetes **antes de abrir un documento**. Conserve modelos, estilos, traducciones e importaciones Facade; no registre ambas variantes.

| Paquete                         | Registro de escritorio          | Registro móvil                          |
| ------------------------------- | ------------------------------- | --------------------------------------- |
| `@univerjs/find-replace`        | `UniverFindReplacePlugin`       | `UniverFindReplaceMobileUIPlugin`       |
| `@univerjs/sheets-find-replace` | `UniverSheetsFindReplacePlugin` | `UniverSheetsFindReplaceMobileUIPlugin` |

## Modo preestablecido

### Instalación

#### npm

```bash
npm install @univerjs/preset-sheets-find-replace
```

#### pnpm

```bash
pnpm add @univerjs/preset-sheets-find-replace
```

#### yarn

```bash
yarn add @univerjs/preset-sheets-find-replace
```

#### bun

```bash
bun add @univerjs/preset-sheets-find-replace
```

### Uso

```typescript
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { UniverSheetsFindReplacePreset } from '@univerjs/preset-sheets-find-replace' // [!code ++]
import UniverPresetSheetsFindReplaceEnUS from '@univerjs/preset-sheets-find-replace/locales/en-US' // [!code ++]
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
import '@univerjs/preset-sheets-core/lib/index.css'
import '@univerjs/preset-sheets-find-replace/lib/index.css' // [!code ++]

const { univerAPI } = createUniver({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      UniverPresetSheetsCoreEnUS,
      UniverPresetSheetsFindReplaceEnUS, // [!code ++]
    ),
  },
  presets: [
    UniverSheetsCorePreset(),
    UniverSheetsFindReplacePreset(), // [!code ++]
  ],
})
```

## API de Facade

Las definiciones completas del tipo de API de Facade se pueden encontrar en [FacadeAPI](https://docs.univer.ai/es-ES/reference/facade.md).

### Importación

> [!INFO: Plugin mode note]
> Solo el modo complemento requiere importar manualmente el paquete Facade. El modo preestablecido ya incluye el paquete Facade correspondiente, por lo que no se necesita ninguna importación adicional.

```typescript
import '@univerjs/sheets-find-replace/facade'
```

### Crear buscador de texto

`univerAPI.createTextFinderAsync()` crea un buscador de texto y devuelve una instancia `FTextFinder`.

Aquí se muestran algunos métodos de miembros [`FTextFinder`](https://docs.univer.ai/es-ES/reference/facade/text-finder.md):

| Método                | Descripción                                                                                                                                                                                                                       |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| findAll               | Obtener todas las celdas coincidentes de la hoja actual, la celda coincidente actual es la última celda coincidente                                                                                                               |
| findNext              | Obtener la siguiente celda coincidente de la hoja actual, si existe, devolver la siguiente celda coincidente y mover la celda coincidente actual a la siguiente celda coincidente                                                 |
| findPrevious          | Obtener la celda coincidente anterior de la hoja actual, si existe, devolver la celda coincidente anterior y mover la celda coincidente actual a la celda coincidente anterior celda                                              |
| getCurrentMatch       | Obtener la celda coincidente actual de la hoja actual                                                                                                                                                                             |
| matchCaseAsync        | Establezca la opción de coincidencia de mayúsculas y minúsculas; si es verdadero, la operación de búsqueda coincidirá con mayúsculas y minúsculas; de lo contrario, la operación de búsqueda ignorará las mayúsculas y minúsculas |
| matchEntireCellAsync  | Establezca la opción de coincidir con toda la celda; si es verdadero, la operación de búsqueda coincidirá con el valor completo de la celda; de lo contrario, la operación de búsqueda coincidirá con parte del valor de la celda |
| matchFormulaTextAsync | Establezca la opción de coincidir con el texto de la fórmula; si es verdadero, la operación de búsqueda coincidirá con el texto de la fórmula; de lo contrario, la operación de búsqueda coincidirá valor                         |
| replaceAllWithAsync   | Reemplazar todo el texto coincidente con el texto dado                                                                                                                                                                            |
| replaceWithAsync      | Reemplazar el texto coincidente actual con el texto dado                                                                                                                                                                          |
| ensureCompleteAsync   | Asegúrese de que se complete la operación de búsqueda. Especialmente cuando se cambia la hoja actual, utilice este método para garantizar que se complete la operación de búsqueda                                                |

```typescript
// Assume the current sheet is empty sheet.
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()

// Set some values to the range A1:D10.
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) => {
  cell.getA1Notation() // D2, C3, B4, A5
})
```
