# Tri

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

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

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

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

---

#### Package metadata

```json
{
  "mobile": true,
  "preset": [
    {
      "client": "@univerjs/preset-sheets-sort",
      "locale": "@univerjs/preset-sheets-sort/locales/fr-FR",
      "style": "@univerjs/preset-sheets-sort/lib/index.css"
    }
  ],
  "plugins": [
    {
      "client": "@univerjs/sheets-sort",
      "facade": "@univerjs/sheets-sort/facade"
    },
    {
      "client": "@univerjs/sheets-sort-ui",
      "locale": "@univerjs/sheets-sort-ui/locale/fr-FR",
      "style": "@univerjs/sheets-sort-ui/lib/index.css"
    }
  ],
  "headless": true,
  "license": false,
  "server": false
}
```

La fonctionnalité de tri permet d’organiser les données d’une feuille de calcul afin de mieux les analyser. Elle prend en charge plusieurs méthodes, notamment le tri croissant, décroissant et personnalisé, pour retrouver rapidement les données recherchées.



## Mode plugin

### Installation

#### npm

```bash
npm install @univerjs/sheets-sort @univerjs/sheets-sort-ui
```

#### pnpm

```bash
pnpm add @univerjs/sheets-sort @univerjs/sheets-sort-ui
```

#### yarn

```bash
yarn add @univerjs/sheets-sort @univerjs/sheets-sort-ui
```

#### bun

```bash
bun add @univerjs/sheets-sort @univerjs/sheets-sort-ui
```

### Utilisation

```typescript
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { UniverSheetsSortPlugin } from '@univerjs/sheets-sort' // [!code ++]
import { UniverSheetsSortUIPlugin } from '@univerjs/sheets-sort-ui' // [!code ++]
import SheetsSortUIEnUS from '@univerjs/sheets-sort-ui/locale/en-US' // [!code ++]
import '@univerjs/sheets-sort-ui/lib/index.css' // [!code ++]
import '@univerjs/sheets-sort/facade' // [!code ++]

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

univer.registerPlugin(UniverSheetsSortPlugin) // [!code ++]
univer.registerPlugin(UniverSheetsSortUIPlugin) // [!code ++]
```

## Prise en charge mobile

Configurez d’abord l’[éditeur mobile](https://docs.univer.ai/fr-FR/guides/sheets/getting-started/installation.md#mobile-support). Dans l’initialisation en mode plugin de cette page, remplacez les inscriptions de bureau ci-dessous par les exports mobiles des mêmes paquets **avant d’ouvrir un document**. Conservez modèles, styles, traductions et imports Facade ; n’enregistrez pas les deux variantes.

| Paquet                     | Inscription de bureau      | Inscription mobile               |
| -------------------------- | -------------------------- | -------------------------------- |
| `@univerjs/sheets-sort-ui` | `UniverSheetsSortUIPlugin` | `UniverSheetsSortMobileUIPlugin` |

## Mode prédéfini

### Installation

#### npm

```bash
npm install @univerjs/preset-sheets-sort
```

#### pnpm

```bash
pnpm add @univerjs/preset-sheets-sort
```

#### yarn

```bash
yarn add @univerjs/preset-sheets-sort
```

#### bun

```bash
bun add @univerjs/preset-sheets-sort
```

### Utilisation

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

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

## Facade API

Vous trouverez les définitions de types complètes de la Facade API dans la [FacadeAPI](https://docs.univer.ai/fr-FR/reference/facade.md).

### Importation

> [!INFO: Remarque sur le mode plugin]
> Seul le mode plugin nécessite d’importer manuellement le package Facade. Le mode prédéfini inclut déjà le package Facade correspondant ; aucune importation supplémentaire n’est nécessaire.

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

### Trier une feuille de calcul

La méthode [`FWorksheet.sort(colIndex, asc)`](https://docs.univer.ai/fr-FR/reference/facade/worksheet.md#sort) permet de trier la feuille de calcul selon la colonne indiquée.

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

// Sorts the worksheet in ascending order based on the first column
fWorksheet.sort(0)

// Sorts the worksheet in descending order based on the first column
fWorksheet.sort(0, false)
```

### Trier une plage

La méthode [`FRange.sort(column)`](https://docs.univer.ai/fr-FR/reference/facade/range.md#sort) permet de trier les cellules d’une plage selon la colonne et l’ordre indiqués.

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
const fRange = fWorksheet.getRange('D1:G10')

// Sorts the range in ascending order based on the first column
fRange.sort(0)

// Sorts the range in descending order based on the first column
fRange.sort({ column: 0, ascending: false })

// Sorts the range in descending order based on the first column and ascending order based on the second column
fRange.sort([{ column: 0, ascending: false }, 1])
```

### Écouteurs d’événements

Vous trouverez les définitions complètes des types d’événements dans la page [Events](https://docs.univer.ai/fr-FR/reference/facade/events.md).

L’événement `SheetRangeSorted` est déclenché une fois le tri de la plage de cellules terminé.

```typescript
const disposable = univerAPI.addEvent(univerAPI.Event.SheetRangeSorted, (params) => {
  const { workbook, worksheet, range, sortColumn } = params
})

// Remove event listener using `disposable.dispose()`
```

L’événement `SheetBeforeRangeSort` est déclenché avant le tri de la plage de cellules.

```typescript
const disposable = univerAPI.addEvent(univerAPI.Event.SheetBeforeRangeSort, (params) => {
  const { workbook, worksheet, range, sortColumn } = params

  // Cancel the sorting operation
  params.cancel = true
})

// Remove event listener using `disposable.dispose()`
```
