Structure des données d'une cellule

Position d'une cellule

Dans Univer Sheets, les données des cellules sont stockées dans le champ cellData de l'objet IWorksheetData. Ce champ contient toutes les informations sur les cellules, comme leur valeur, leur style et leur type.

La structure de cellData est la suivante :

TypeScript
interface IWorksheetData {  cellData: {    // first row    0: {      // first column      0: { v: 'A1' }      // second column      1: { v: 'B1' }    }    // second row    1: {      // first column      0: { v: 'A2' }      // second column      1: { v: 'B2' }    }  }}

Données d'une cellule

Voici l'ensemble des informations d'une cellule.

PropriétéDescription
vValeur d'origine de la cellule
sIdentifiant de style ou objet de style de la cellule
tType de la cellule
pTexte enrichi, également un 📝 document Univer Docs
fFormule
siIdentifiant de formule
customChamp personnalisé

Consultez les informations de type de chaque champ de ICellData.

Valeur d'origine d'une cellule

cellData.v stocke la valeur d'origine de la cellule, qui peut être une chaîne ou un nombre. Pour les cellules contenant une formule, v stocke le résultat du calcul de la formule.

Voici deux exemples de valeurs de cellule différentes.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: { v: 'A1' }      1: { v: 1 }    }  }}

Style d'une cellule

cellData.s stocke l'identifiant de style ou l'objet de style de la cellule.

Si s est une chaîne, elle représente un identifiant de style. Univer Sheets permet d'optimiser les références de styles. Les objets de style répétés sont stockés dans le champ styles de IWorkbookData. Ce champ est une structure Map dont chaque clé correspond à un identifiant de style et chaque valeur à l'objet de style associé.

Évitez d'utiliser des couleurs avec transparence, comme rgba. Sinon, lorsque le mode d'édition est activé, le contenu de la cellule sous-jacente apparaîtra à travers l'arrière-plan.

TypeScript
interface IWorkbookData {  styles: {    random_style_id_1: {      fs: 12      bg: {        rgb: '#ff0000'      }    }  }}

Stockez ensuite l'identifiant dans le style de la cellule afin de réutiliser ce style.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: {        v: 'A1'        s: 'random_style_id_1'      }      1: {        v: 'B1'        s: 'random_style_id_1'      }    }  }}

Si s est un objet, il représente un objet de style de cellule complet IStyleData.

Voici l'ensemble des champs de style.

PropriétéDescription
ffPolice
fsTaille de police
itItalique
blGras
ulSoulignement
stBarré
olTrait supérieur
bgCouleur d'arrière-plan
bdBordure
clCouleur de police
vaExposant ou indice
trRotation du texte
htAlignement horizontal
vtAlignement vertical
tbGestion du dépassement du texte
pdMarges internes
nFormat de nombre

Vous pouvez consulter les informations de type de chaque champ de IStyleData.

Police

ff est une chaîne qui représente le nom de la police.

TypeScript
interface IStyleData {  ff: 'Arial' // Font name is Arial}

Taille de police

fs est un nombre exprimé en pt.

TypeScript
interface IStyleData {  fs: 12 // Font size is 12 pt}

Italique

it est un nombre booléen : 0 signifie que le texte n'est pas en italique et 1 qu'il l'est.

TypeScript
interface IStyleData {  it: 1 // Italic}

Gras

bl est un nombre booléen : 0 signifie que le texte n'est pas en gras et 1 qu'il l'est.

TypeScript
interface IStyleData {  bl: 1 // Bold}

Soulignement

ul est un objet qui représente le style de soulignement.

TypeScript
interface IStyleData {  ul: {    s: 1 // Whether to show underline    c: 0 // Whether the color follows the font color. When `c` is 1 (TRUE), cl does not work. The default value is 1    cl: { // Underline color      rgb: '#ff0000'    }    t: 0 // Underline type  }}

Barré

st est un objet qui représente le style barré.

TypeScript
interface IStyleData {  st: {    s: 1 // Whether to show strikethrough    c: 0 // Whether the color follows the font color. When `c` is 1 (TRUE), cl does not work. The default value is 1    cl: { // Strikethrough color      rgb: '#ff0000'    }    t: 0 // Strikethrough type  }}

Trait supérieur

ol est un objet qui représente le style du trait supérieur.

TypeScript
interface IStyleData {  ol: {    s: 1 // Whether to show overline    c: 0 // Whether the color follows the font color. When `c` is 1 (TRUE), cl does not work. The default value is 1    cl: { // Overline color      rgb: '#ff0000'    }    t: 0 // Overline type  }}

Couleur d'arrière-plan

bg est un objet qui représente la couleur d'arrière-plan.

TypeScript
interface IStyleData {  bg: {    rgb: '#ff0000' // Background color is red  }}

Bordure

bd est un objet qui représente le style de bordure.

TypeScript
interface IStyleData {  bd: {    // Top border    t: {      s: 0 // Border style      cl: { // Border color        rgb: '#ff0000'      }    }    // Bottom border    b: {      s: 0 // Border style      cl: { // Border color        rgb: '#ff0000'      }    }    // Left border    l: {      s: 0 // Border style      cl: { // Border color        rgb: '#ff0000'      }    }    // Right border    r: {      s: 0 // Border style      cl: { // Border color        rgb: '#ff0000'      }    }  }}

Couleur de police

cl est un objet qui représente la couleur de police.

TypeScript
interface IStyleData {  cl: {    rgb: '#ff0000' // Font color is red  }}

Exposant ou indice

va est un nombre d'énumération : 1 correspond au texte normal, 2 à l'indice et 3 à l'exposant.

TypeScript
interface IStyleData {  va: 2 // Subscript}

Rotation du texte

tr est un objet qui représente la rotation du texte.

TypeScript
interface IStyleData {  tr: {    a: 0 // Text rotation angle    v: 0 // Whether it is vertical. 1 means vertical, 0 means horizontal. The default value is 0. When v is 1, a is invalid  }}

Alignement horizontal

ht est un nombre d'énumération : 1 correspond à l'alignement à gauche, 2 à l'alignement centré et 3 à l'alignement à droite.

TypeScript
interface IStyleData {  ht: 1 // Left alignment}

Alignement vertical

vt est un nombre d'énumération : 1 correspond à l'alignement en haut, 2 à l'alignement centré et 3 à l'alignement en bas.

TypeScript
interface IStyleData {  vt: 1 // Top alignment}

Gestion du dépassement du texte

tb est un nombre d'énumération : 1 autorise le dépassement, 2 tronque le texte et 3 active le retour à la ligne.

TypeScript
interface IStyleData {  tb: 1 // Overflow}

Marges internes

pd est un objet qui représente les marges internes.

TypeScript
interface IStyleData {  pd: {    t: 0 // Top padding    b: 0 // Bottom paddingAdd commentMore actions    l: 0 // Left padding    r: 0 // Right padding  }}

Format de nombre

n est un objet dont le champ pattern indique le format de nombre. Le format de nombre est une chaîne. Pour en savoir plus, consultez cette page。

Si n est null ou si pattern est null, le format général est utilisé.

TypeScript
import type { DEFAULT_TEXT_FORMAT_EXCEL } from '@univerjs/core'interface IStyleData {  n: {    pattern: DEFAULT_TEXT_FORMAT_EXCEL // text format  }}

Empêcher la conversion automatique d'une cellule lors de la saisie d'un nombre commençant par 0 ou pouvant être converti au format de date

Type de cellule

cellData.t est une énumération CellValueType qui représente le type de la cellule. 1 correspond à une chaîne, 2 à un nombre, 3 à un booléen et 4 à du texte forcé. Si ce champ n'est pas défini, Univer reconnaît automatiquement le type.

Si la cellule est de type booléen, la valeur de cellData.v est stockée sous la forme 0 ou 1 : 0 signifie faux et 1 vrai.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: {        v: 'A1'        t: 1 // String      }      1: {        v: 1        t: 2 // Number      }      2: {        v: 1 // TRUE        t: 3 // Boolean      }      3: {        v: '012.0'        t: 4 // Force text      }    }  }}

Vous pouvez activer ou désactiver l'alerte et le marqueur de texte forcé à l'aide de disableForceStringAlert et de disableForceStringMark. Consultez l'emplacement de cette configuration :

Texte enrichi

cellData.p est un objet qui représente du texte enrichi et constitue également un document Univer Docs. En savoir plus sur IDocumentData.

Lorsque p et v sont tous deux définis pour une cellule, seul le contenu de p est affiché.

cellData.p.body.dataStream contient le texte enrichi.

Formule

cellData.f est une chaîne qui représente une formule.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: {        f: '=SUM(A1:B1)' // function SUM      }    }  }}

Identifiant de formule

cellData.si est une chaîne qui représente l'identifiant de la formule. Univer Sheets permet d'optimiser les références de formules. Après avoir associé la formule actuelle à si dans une cellule, d'autres cellules peuvent y faire référence à l'aide de si. Notez que la cellule qui contient si doit se trouver en bas à droite de la cellule de référence. Sinon, une erreur se produit lors de l'exportation au format XLSX.

La formule réelle peut être obtenue avec l'API Facade range.getFormulas(). Le principe consiste à obtenir la formule f associée à si, puis à calculer la formule réelle en fonction du décalage entre la position de la cellule actuelle et celle de la cellule de référence.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: {        f: '=SUM(A1:B1)' // Sum formula        si: 'random_formula_id_1' // ID of the current formula      }      1: {        si: 'random_formula_id_1' // Take the formula corresponding to this ID during calculation      }    }  }}

Champ personnalisé

cellData.custom est un objet qui représente un champ personnalisé. Vous pouvez y placer toute donnée conforme au format JSON afin de stocker des informations supplémentaires.

La mise à jour des données custom remplace les données custom existantes. Si vous devez conserver les données custom existantes lors d'une mise à jour, récupérez au préalable les données custom et fusionnez-les avec les nouvelles données avant d'effectuer la mise à jour.

Le champ custom ne convient qu'à certains cas particuliers. Les données qu'il contient peuvent être remplacées ou supprimées par n'importe quelle opération utilisateur. Utilisez-le avec précaution.

TypeScript
interface IWorksheetData {  cellData: {    0: {      0: {        custom: {          key: 'value'        }      }    }  }}

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.