Estructura de datos de celda
Posición de celda
Los datos de celda en Univer Sheets se almacenan en el campo cellData del objeto IWorksheetData, que contiene todas las celdas. información como valor de celda, estilo, tipo, etc.
La estructura de cellData es la siguiente
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' } } }}Datos de celda
La información completa de la celda es la siguiente.
| Propiedad | Descripción |
|---|---|
| v | Valor original de la celda |
| s | Id. de estilo de celda u objeto de estilo |
| t | Tipo de celda |
| p | Texto enriquecido, también 📝 Univer Docs |
| f | Formula |
| si | Id. de fórmula |
| custom | Campo personalizado |
Consulte la información de tipo de cada campo de ICellData.
Valor original de la celda
cellData.v almacena el valor original de la celda, que puede ser una cadena o un número. Para celdas con fórmulas, v almacena el resultado del cálculo de la fórmula.
Aquí mostramos dos valores de celda diferentes.
interface IWorksheetData { cellData: { 0: { 0: { v: 'A1' } 1: { v: 1 } } }}Estilo de celda
cellData.s almacena la identificación de estilo o el objeto de estilo de la celda.
Si s es una cadena, representa una identificación de estilo. Univer Sheets admite la optimización de referencias para estilos. Los objetos de estilo repetidos se almacenan en el campo estilos de IWorkbookData, que es una estructura de mapa, cada clave es la identificación del estilo y el valor es el objeto de estilo.
Evite usar valores de color con transparencia (como rgba), de lo contrario, el fondo mostrará el contenido de la celda subyacente cuando se active el estado de edición.
interface IWorkbookData { styles: { random_style_id_1: { fs: 12 bg: { rgb: '#ff0000' } } }}Luego almacene la identificación en el estilo de celda para lograr el propósito del estilo. reutilizar.
interface IWorksheetData { cellData: { 0: { 0: { v: 'A1' s: 'random_style_id_1' } 1: { v: 'B1' s: 'random_style_id_1' } } }}Si s es un objeto, representa un objeto de estilo de celda completo IStyleData.
El campo de estilo completo es el siguiente.
| Propiedad | Descripción |
|---|---|
| ff | Font |
| fs | Tamaño de fuente |
| it | Italic |
| bl | Bold |
| ul | Underline |
| st | Strikethrough |
| ol | Overline |
| bg | Fondo color |
| bd | Border |
| cl | Color de fuente |
| va | Superíndice o subíndice |
| tr | Rotación de texto |
| ht | Alineación horizontal |
| vt | Alineación vertical |
| tb | Truncar desbordamiento |
| pd | Padding |
| n | Formato de números |
Puede consultar la información de tipo de cada campo de IStyleData.
Fuente
ff es una cadena que representa el nombre de la fuente.
interface IStyleData { ff: 'Arial' // Font name is Arial}Tamaño de fuente
fs es un número, la unidad es pt.
interface IStyleData { fs: 12 // Font size is 12 pt}Cursiva
it es un número booleano, 0 significa no cursiva, 1 significa cursiva.
interface IStyleData { it: 1 // Italic}Negrita
bl es un número booleano, 0 significa no negrita, 1 significa negrita.
interface IStyleData { bl: 1 // Bold}Subrayado
ul es un objeto, representa el estilo subrayado.
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 }}Tachado
st es un objeto, representa el estilo tachado.
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 }}Sobrelínea
ol es un objeto, representa estilo de sobrelínea.
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 }}Color de fondo
bg es un objeto, representa el color de fondo.
interface IStyleData { bg: { rgb: '#ff0000' // Background color is red }}Borde
bd es un objeto, representa el estilo de borde.
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' } } }}Color de fuente
cl es un objeto, representa el color de fuente.
interface IStyleData { cl: { rgb: '#ff0000' // Font color is red }}Superíndice o Subíndice
va es un número de enumeración, 1 significa normal, 2 significa subíndice, 3 significa superíndice.
interface IStyleData { va: 2 // Subscript}Rotación de texto
tr es un objeto, representa texto rotación.
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 }}Alineación horizontal
ht es un número de enumeración, 1 significa alineación a la izquierda, 2 significa centro, 3 significa alineación a la derecha.
interface IStyleData { ht: 1 // Left alignment}Vertical Alineación
vt es un número de enumeración, 1 significa alineación superior, 2 significa centro, 3 significa alineación inferior.
interface IStyleData { vt: 1 // Top alignment}Truncar desbordamiento
tb es un número de enumeración, 1 significa desbordamiento, 2 significa truncar, 3 significa ajuste.
interface IStyleData { tb: 1 // Overflow}Relleno
pd es un objeto, representa padding.
interface IStyleData { pd: { t: 0 // Top padding b: 0 // Bottom paddingAdd commentMore actions l: 0 // Left padding r: 0 // Right padding }}Formato de número
n es un objeto. El campo pattern indica el formato del número. El formato del número es una cadena, consulte aquí。
n es null o pattern es null, indica el formato general.
import type { DEFAULT_TEXT_FORMAT_EXCEL } from '@univerjs/core'interface IStyleData { n: { pattern: DEFAULT_TEXT_FORMAT_EXCEL // text format }}Tipo de celda
cellData.t es una enumeración CellValueType, representa el tipo de celda. 1 significa cadena, 2 significa número, 3 significa booleano, 4 significa texto forzado. Univer lo reconocerá automáticamente si no está configurado.
Si la celda es de tipo booleano, el valor de cellData.v se almacena como 0 o 1, 0 significa falso, 1 significa verdadero.
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 } } }}Tú Puede controlar si se habilita la alerta de texto forzado y la marca configurando disableForceStringAlert y disableForceStringMark. Vea la ubicación de configuración:
Texto enriquecido
cellData.p es un objeto que representa texto enriquecido y también es un Univer Doc. Obtenga más información sobre IDocumentData.
Cuando se configuran las celdas p y v, solo se mostrará el contenido de p.
cellData.p.body.dataStream es el contenido enriquecido texto.
Fórmula
cellData.f es una cadena que representa una fórmula.
interface IWorksheetData { cellData: { 0: { 0: { f: '=SUM(A1:B1)' // function SUM } } }}ID de fórmula
cellData.si es una cadena que representa el ID de fórmula. Univer Sheets admite la optimización de referencias para fórmulas. Después de que la fórmula actual esté asociada con si en la celda, otras celdas pueden hacer referencia a la fórmula actual a través de si. Tenga en cuenta que la posición de la celda con si debe estar en la esquina inferior derecha de la celda de referencia; de lo contrario, se producirá un error al exportar a XLSX.
La fórmula real se puede obtener a través de la API de Facade range.getFormulas(). La regla es obtener la fórmula f correspondiente a si y luego calcular la fórmula real en función del desplazamiento desde la posición actual de la celda hasta la posición de referencia.
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 } } }}Campo personalizado
cellData.custom es un objeto que representa un campo personalizado. Puede colocar en él cualquier dato que cumpla con el formato JSON para personalizar el almacenamiento de información adicional.
La actualización de los datos custom sobrescribirá los datos custom originales. Si necesita conservar los datos custom originales al actualizar los datos, obtenga los datos custom con anticipación y combínelos en datos nuevos antes de actualizar.
El campo custom solo es adecuado para algunos escenarios especiales, y los datos almacenados en este campo pueden sobrescribirse o eliminarse mediante cualquier operación del usuario. Úselo con precaución.
interface IWorksheetData { cellData: { 0: { 0: { custom: { key: 'value' } } } }}¿Cómo es esta guía?