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

PropiedadTipoDescripción
dataStreamstringSecuencia 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.

TypeScript
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ácterSignificado
\r\nSalto de párrafo
\nSalto de sección
\fSalto de página
\vSalto de columna
\tTab
\0Fin del documento
\bMarcador 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:

  • tableSource almacena definiciones de tablas.
  • drawings almacena imágenes y objetos de dibujo.
  • headers y footers contienen cada uno los suyos propios IDocumentBody.
  • lists almacena definiciones de lista a las que se hace referencia mediante viñetas de párrafo.
  • resources almacena datos definidos por complementos.

¿Cómo es esta guía?

© 2026 DreamNum Co., Ltd.