Univer Bases API

Découvrez comment utiliser l’API Facade dans une application Univer Bases.

L’API Facade fournit une couche destinée aux applications au-dessus du modèle Bases. Utilisez-la pour les opérations courantes, comme la création de bases, de tables, de champs, d’enregistrements, de vues, de filtres, de tris, de groupes et de sélections, ainsi que pour la navigation dans l’interface utilisateur.

Attention

Les mutations du modèle Base sont synchrones. Les méthodes d’activation UI renvoient des promesses et doivent être attendues.

Activer les points d’entrée Facade

Importez le point d’entrée Facade de chaque fonctionnalité Bases utilisée par votre application :

TypeScript
import { FUniver } from '@univerjs/core/facade'import '@univerjs-pro/bases/facade'import '@univerjs-pro/bases-ui/facade'

Créez l’objet API après avoir enregistré l’instance Univer et les extensions requises :

TypeScript
const univerAPI = FUniver.newAPI(univer)

Créer et lire une base

Utilisez createBase pour créer une unité Base au moyen de la couche Facade. Dans le code de configuration de plus bas niveau, créez l’unité avec univer.createUnit(UniverInstanceType.UNIVER_BASE, snapshot).

TypeScript
const base = univerAPI.createBase({  id: 'base-demo',  name: 'Base Demo',})const activeBase = univerAPI.getActiveBase()const sameBase = univerAPI.getBase(base.getId())

Créer une table

TypeScript
const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })const status = table.addField('Status', univerAPI.Enum.BaseFieldType.SingleSelect)

Manipuler les enregistrements

TypeScript
const record = table.addRecord({  Title: 'Write docs',  Status: 'In progress',}, univerAPI.Enum.BaseFieldKeyEnum.Name)record.setValue(status.getId(), 'Done')

Manipuler l’état de l’interface utilisateur

@univerjs-pro/bases-ui/facade ajoute des API d’interface utilisateur pour l’activation des tables et des vues, la sélection, le défilement, la modification et les panneaux.

TypeScript
const baseUI = univerAPI.getBaseUI()const view = table.getViews()[0]if (!view) throw new Error('No table view')await baseUI.activateTable(table.getId())await baseUI.activateView(view.getId())baseUI.setSelection({  type: 'grid-record',  tableId: table.getId(),  viewId: view.getId(),  recordId: record.getId(),})

Référence

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.