# API d’Univer Sheets

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

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

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

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

---

Univer Sheets offre des fonctionnalités de tableur de qualité professionnelle, dont les concepts sont conçus pour rester aussi cohérents que possible avec Microsoft Excel.

## Importation

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

## Classeur

Un classeur contient plusieurs feuilles de calcul et peut être assimilé à un fichier Excel.

Le `unitId` peut servir d’identifiant unique au classeur.

### Créer un classeur

La méthode [`univerAPI.createWorkbook(data, options)`](https://docs.univer.ai/fr-FR/reference/facade/univer.md#createworkbook) crée et renvoie l’objet `FWorkbook`.

[`IWorkbookData`](https://docs.univer.ai/fr-FR/guides/sheets/model/workbook-data.md) est un objet qui contient les informations de configuration du classeur.

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

Vous pouvez également empêcher le classeur de devenir le classeur actif en définissant les options suivantes :

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

### Obtenir les données du classeur

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

### Décharger un classeur

Lorsque vous n’avez plus besoin d’un `Workbook`, appelez la méthode `disposeUnit` de l’instance d’API pour le décharger.

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

> [!WARNING]
> Lorsque la page entière qui héberge l’instance Univer est détruite ou que la route est déchargée, veillez à appeler la méthode `univer.dispose()` pour effectuer le nettoyage, plutôt que d’utiliser `univerAPI.disposeUnit`.
> Notez également que `univer` et `univerAPI` sont deux instances distinctes. Pour savoir comment les obtenir, consultez la page [Installation et utilisation de base](https://docs.univer.ai/fr-FR/guides/sheets/getting-started/installation.md).

### Obtenir l’ID du classeur

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

## Feuille de calcul

Les feuilles de calcul stockent les données tabulaires et appartiennent au classeur.

Un classeur peut contenir plusieurs feuilles de calcul, dont les noms doivent être uniques au sein du classeur.

Le `subUnitId` permet d’identifier de manière unique une feuille dans un classeur.

### Obtenir les feuilles de calcul

Obtenir toutes les feuilles d’un classeur

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

Obtenir la feuille de calcul active

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

### Obtenir les données d’une feuille de calcul

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

### Créer une feuille de calcul

L’exemple suivant montre comment créer une feuille de calcul avec la méthode [`FWorkbook.create`](https://docs.univer.ai/fr-FR/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)
```

### Supprimer une feuille de calcul

Supprimez une feuille de calcul en transmettant son instance ou son ID.

```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());
```

### Activer une feuille de calcul

Activez une feuille de calcul en transmettant son instance ou son ID, ou utilisez la méthode `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();
```

### Copier une feuille de calcul

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

### Obtenir l’ID de la feuille de calcul

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

### Définir le nombre de lignes et de colonnes

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

### Actualiser une feuille de calcul

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

### Zoom de la feuille de calcul

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

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

### Faire défiler jusqu’à une cellule

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

## Fonctionnalités principales

### Autorisations

Référence : [Autorisations](https://docs.univer.ai/fr-FR/guides/sheets/features/core/permission.md)

### Formules

Référence : [Formules](https://docs.univer.ai/fr-FR/guides/sheets/features/core/formula.md)

### Lignes et colonnes

Référence : [Lignes et colonnes](https://docs.univer.ai/fr-FR/guides/sheets/features/core/row-col.md)

### Plage

Référence : [Plage](https://docs.univer.ai/fr-FR/guides/sheets/features/core/range-selection.md#range)

### Sélection

Référence : [Sélection](https://docs.univer.ai/fr-FR/guides/sheets/features/core/range-selection.md#selection)

### Cellule

Référence : [Cellule](https://docs.univer.ai/fr-FR/guides/sheets/features/core/range-selection.md#cell)

### Figer

Référence : [Figer](https://docs.univer.ai/fr-FR/guides/sheets/features/core/freeze.md)

### Intégrer des composants personnalisés dans Univer

Référence : [Intégrer des composants personnalisés dans Univer](https://docs.univer.ai/fr-FR/guides/sheets/ui/components.md)

## Références

Pour en savoir plus, consultez la documentation des API suivantes :

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