Estructura del cuerpo del documento
IDocumentBody
IDocumentBody almacena el contenido del flujo principal de un documento de Univer Docs.
El texto real se almacena en dataStream. Los estilos y la información estructural se almacenan en matrices paralelas y se vinculan al texto a través de índices.
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
| dataStream | string | Secuencia de texto sin formato del cuerpo del documento. Los caracteres especiales marcan párrafos, saltos de sección, tablas y bloques personalizados. |
| textRuns? | ITextRun[] | Rangos de estilo en línea. |
| paragraphs? | IParagraph[] | Metadatos de párrafo y estilos de párrafo. |
| sectionBreaks? | ISectionBreak[] | Metadatos de salto de sección. |
| customBlocks? | ICustomBlock[] | Marcadores de posición de bloque definidos por complemento. |
| tables? | ICustomTable[] | Marcadores de tabla en el cuerpo del documento. Las definiciones de tablas se encuentran en IDocumentData.tableSource. |
| columnGroups? | ICustomColumnGroup[] | Marcadores de grupos de columnas. |
| blockRanges? | IDocumentBlockRange[] | Rangos de bloques estructurados, como bloques de texto, citas y códigos. |
| customRanges? | ICustomRange[] | Rangos especiales, como hipervínculos, campos, marcadores, comentarios, menciones y rangos definidos por complementos. |
| customDecorations? | ICustomDecoration[] | Rangos de decoración, como resaltados de comentarios. |
| payloads? | Record<string, string> | Copiar y pegar temporalmente cargas útiles. Este campo no persiste. |
dataStream
dataStream es la fuente de verdad para el cuerpo del texto. Un párrafo generalmente termina con \r\n.
const body: IDocumentBody = { dataStream: 'Title\r\nHello Univer\r\n', paragraphs: [ { startIndex: 5, paragraphId: 'p-title' }, { startIndex: 19, paragraphId: 'p-body' }, ],}Caracteres especiales
Algunos elementos del documento están representados por caracteres de control en dataStream y expandidos por el renderizador:
| Carácter | Significado |
|---|---|
\r\n | Salto de párrafo |
\n | Salto de sección |
\f | Salto de página |
\v | Salto de columna |
\t | Tab |
\0 | Fin del documento |
\b | Marcador de posición de bloque personalizado |
Las tablas y los rangos personalizados también usan caracteres de control internamente. Cuando trabaje con tablas, enlaces, comentarios y funciones a nivel de bloque, prefiera las API o comandos de Facade en lugar de caracteres de control escritos a mano.
Relación con IDocumentData
IDocumentBody solo almacena el flujo de documentos principal. Los recursos externos se almacenan en IDocumentData:
tableSourcealmacena definiciones de tablas.drawingsalmacena imágenes y objetos de dibujo.headersyfooterscontienen cada uno los suyos propiosIDocumentBody.listsalmacena definiciones de lista a las que se hace referencia mediante viñetas de párrafo.resourcesalmacena datos definidos por complementos.
¿Cómo es esta guía?