Champs

Les champs définissent le schéma d’une table Base. Chaque champ possède un type, une configuration et une valeur par défaut, ainsi que des fonctionnalités telles que le tri, le filtrage, le regroupement ou l’affichage sous forme de carte.

Types de champs

UsageBaseFieldType
Texte et coordonnéesText, Link, Phone, Email
Nombres et progressionNumber, Currency, Progress, Rating
Choix et membresCheckbox, SingleSelect, MultiSelect, Person, Group
Dates et pièces jointesDate, Attachment
Calculs et relationsFormula, RecordLink
Valeurs générées et auditNumbering, RecordId, CreatedBy, UpdatedBy, CreatedAt, UpdatedAt

Utilisez les ID des options pour les sélections et les ID métier pour les membres. La numérotation et les champs d’audit sont gérés par le système. Consultez les formules et les relations.

Ajouter des champs

TypeScript
const table = base.getTableById('tasks')if (!table) throw new Error('Tasks table not found')const title = table.addField('Title', univerAPI.Enum.BaseFieldType.Text)const priority = table.addField(  'Priority',  univerAPI.Enum.BaseFieldType.SingleSelect,  {    field: {      config: {        options: [          { id: 'high', name: 'High', color: '#ef4444' },          { id: 'low', name: 'Low', color: '#22c55e' },        ],      },    },  },)

Mettre à jour des champs

TypeScript
priority.setName('Impact')priority.update({ description: 'Business priority' })priority.setConfig({  options: [    { id: 'p0', name: 'P0', color: '#dc2626' },    { id: 'p1', name: 'P1', color: '#f97316' },  ],})

Modifier le type d’un champ

TypeScript
priority.changeType(univerAPI.Enum.BaseFieldType.Text, {})

La modification du type d’un champ peut normaliser les valeurs existantes. Validez les données dans votre application avant d’appliquer des modifications de schéma aux tables de production.

Pièces jointes

Une pièce jointe exige un ID stable, un nom et une source accessible. Cet exemple suppose que votre application a déjà téléversé le fichier.

TypeScript
const attachments = table.addField('Files', univerAPI.Enum.BaseFieldType.Attachment)const record = table.getRecords()[0]if (!record) throw new Error('Create a record first')record.setAttachments(attachments.getId(), [{  id: 'brief-1',  name: 'brief.pdf',  mimeType: 'application/pdf',  source: 'https://example.com/files/brief.pdf',}])

setAttachments() remplace toute la liste. Utilisez getAttachments() pour la lire et deleteAttachments() pour supprimer des éléments précis. Remplacez l’URL par une adresse accessible et configurez le téléversement dans votre enregistrement Bases UI existant :

TypeScript
univer.registerPlugin(UniverBasesUIPlugin, {  attachment: {    accept: ['image/*', '.pdf'],    maxSize: 10 * 1024 * 1024,    upload: uploadAttachment,  },})

La signature de uploadAttachment est (file: File) => Promise<IBaseAttachment> ; elle renvoie les données illustrées ci-dessus. maxSize est exprimé en octets. Sans gestionnaire, le plugin essaie les E/S d’images puis Base64, ce qui augmente l’instantané. En production, connectez un stockage et validez le type, la taille et les droits de téléchargement côté serveur.

Personnes et groupes

Fournissez les candidats via personOptions et groupOptions de Bases UI. Chaque élément possède id, name et éventuellement avatar. Ces options concernent l’affichage ; l’application gère l’authentification et les autorisations.

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.