# API de Univer Sheets

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

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

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

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

---

Univer Sheets proporciona capacidades de hojas de cálculo de nivel profesional, con conceptos diseñados para ser lo más consistentes posible con Microsoft Excel.

## Importación

```typescript
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
```

## Libro de trabajo

Un libro contiene varias hojas de trabajo y puede considerarse como un archivo de Excel.

El `unitId` se puede utilizar como identificador único para el libro.

### Crear un libro

El método [`univerAPI.createWorkbook(data, options)`](https://docs.univer.ai/es-ES/reference/facade/univer.md#createworkbook) crea y devuelve el `FWorkbook` objeto.

El [`IWorkbookData`](https://docs.univer.ai/es-ES/guides/sheets/model/workbook-data.md) es un objeto que contiene la información de configuración del libro.

```typescript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' })
console.log(fWorkbook)
```

Agregue, puede hacer que el libro no sea el libro activo configurando opciones:

```typescript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' }, { makeCurrent: false })
console.log(fWorkbook)

// If you want to switch to this workbook after 3 seconds
setTimeout(() => {
  univerAPI.setCurrent(fWorkbook.getId())
}, 3000)
```

### Obtener datos del libro

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const snapshot = fWorkbook.save()
console.log(snapshot)
```

### Descargar libro

Cuando ya no necesite un `Workbook`, puede llamar al método `disposeUnit` en la instancia de API para descargarla.

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const unitId = fWorkbook?.getId()
if (unitId) {
  univerAPI.disposeUnit(unitId)
}
```

> [!WARNING]
> Cuando se destruye toda la página que aloja la instancia de Univer o se descarga la ruta, asegúrese de llamar al método `univer.dispose()` para la limpieza, en lugar de usar `univerAPI.disposeUnit`.
> Además, tenga en cuenta que `univer` y `univerAPI` son instancias diferentes. Para obtener instrucciones sobre cómo obtener estas instancias, consulte [Instalación y uso básico](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation.md).

### Obtener ID del libro de trabajo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
fWorkbook?.getId()
```

## Hoja de trabajo

Las hojas de trabajo almacenan datos de la tabla, las hojas de trabajo pertenecen al libro de trabajo.

Un libro de trabajo puede contener varias hojas de trabajo y los nombres de las hojas de trabajo en el mismo libro no se pueden duplicar.

El `subUnitId` se puede utilizar para identificar de forma única una hoja en un libro.

### Obtener hojas de trabajo

Obtener todas las hojas de una hoja

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const sheets = fWorkbook.getSheets()
```

Obtener hoja de trabajo activa

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
```

### Obtener datos de la hoja de trabajo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
const sheetSnapshot = fWorksheet.getSheet().getSnapshot()
```

### Crear una hoja de trabajo

El siguiente ejemplo muestra cómo crear una hoja de trabajo usando el método [`FWorkbook.create`](https://docs.univer.ai/es-ES/reference/facade/workbook.md#create).

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()

// Create a worksheet named 'Sheet2' with 10 rows and 10 columns
const newSheet = fWorkbook.create('Sheet2', 10, 10)

// Create a new sheet named 'MyNewSheetWithData' with 10 rows and 10 columns and some data, and set it as the first sheet
const sheetData = {
  // ... Omit other properties
  cellData: {
    0: {
      0: {
        v: 'Hello Univer!',
      },
    },
  },
  // ... Omit other properties
}
const newSheetWithData = fWorkbook.create('MyNewSheetWithData', 10, 10, {
  index: 0,
  sheet: sheetData,
})
console.log(newSheetWithData)
```

### Eliminar hoja de trabajo

Eliminar hoja de trabajo pasando la instancia de la hoja de trabajo o el ID de la hoja de trabajo

```typescript
// Delete the second worksheet
const fWorkbook = univerAPI.getActiveWorkbook()
const sheet = fWorkbook.getSheets()[1]
fWorkbook.deleteSheet(sheet)

// The code below deletes the specified worksheet by id
// fWorkbook.deleteSheet(sheet.getSheetId());
```

### Activar Hoja de cálculo

Active la hoja de cálculo pasando la instancia de la hoja de cálculo o el ID de la hoja de cálculo, o utilice el método `FWorksheet.activate()`.

```typescript
// Activate the second worksheet
const fWorkbook = univerAPI.getActiveWorkbook()
const sheet = fWorkbook.getSheets()[1]
fWorkbook.setActiveSheet(sheet)

// Activates the specified worksheet by id
// fWorkbook.setActiveSheet(sheet.getSheetId());

// Activate the worksheet using the FWorksheet.activate() method
// sheet.activate();
```

### Copiar hoja de cálculo

```typescript
// The code below duplicates the given worksheet
const fWorkbook = univerAPI.getActiveWorkbook()
const activeSheet = fWorkbook.getActiveSheet()
const duplicatedSheet = fWorkbook.duplicateSheet(activeSheet)
console.log(duplicatedSheet)
```

### Obtener ID de la hoja de cálculo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
fWorksheet?.getSheetId()
```

### Establecer el recuento de filas y columnas de la hoja de cálculo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
// Set row count to 100000
fWorksheet.setRowCount(100000)
// Set column count to 30
fWorksheet.setColumnCount(30)
```

### Actualizar la hoja de cálculo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
fWorksheet.refreshCanvas()
```

### Ampliación de la hoja de cálculo

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()

// Set zoom ratio to 200%
fWorksheet.zoom(2)
const zoomRatio = fWorksheet.getZoom()
```

### Desplazarse a la celda

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()

// Scroll to cell D10
const fRange = fWorksheet.getRange('D10')
const row = fRange.getRow()
const column = fRange.getColumn()
fWorksheet.scrollToCell(row, column)

// Add scroll animation duration
fWorksheet.scrollToCell(row, column, 1000)

// Get scroll state
const scrollState = fWorksheet.getScrollState()
const { offsetX, offsetY, sheetViewStartColumn, sheetViewStartRow } = scrollState
console.log(scrollState) // sheetViewStartRow: 9, sheetViewStartColumn: 3, offsetX: 0, offsetY: 0
```

## Núcleo Características

### Permiso

Referencia: [Permiso](https://docs.univer.ai/es-ES/guides/sheets/features/core/permission.md)

### Fórmula

Referencia: [Fórmula](https://docs.univer.ai/es-ES/guides/sheets/features/core/formula.md)

### Fila y columna

Referencia: [Fila y columna](https://docs.univer.ai/es-ES/guides/sheets/features/core/row-col.md)

### Rango

Referencia: [Rango](https://docs.univer.ai/es-ES/guides/sheets/features/core/range-selection.md#range)

### Selección

Referencia: [Selección](https://docs.univer.ai/es-ES/guides/sheets/features/core/range-selection.md#selection)

### Celda

Referencia: [Celda](https://docs.univer.ai/es-ES/guides/sheets/features/core/range-selection.md#cell)

### Congelar

Referencia: [Congelar](https://docs.univer.ai/es-ES/guides/sheets/features/core/freeze.md)

### Integración de componentes personalizados en Univer

Referencia: [Integración de componentes personalizados en Univer](https://docs.univer.ai/es-ES/guides/sheets/ui/components.md)

## Referencia

Consulte la siguiente documentación de API para obtener más información. información:

* [FWorkbook](https://docs.univer.ai/es-ES/reference/facade/workbook.md)
* [FWorksheet](https://docs.univer.ai/es-ES/reference/facade/worksheet.md)
