Web SDK

Структура тела документа

IDocumentBody

IDocumentBody хранит основное потоковое содержимое документа Univer Docs.

Сам текст хранится в dataStream. Стили и структурная информация хранятся в параллельных массивах и связываются с текстом по индексам.

Свойства

СвойствоТипОписание
dataStreamstringПоток обычного текста тела документа. Абзацы, разрывы разделов, таблицы и пользовательские блоки обозначаются специальными символами.
textRuns?ITextRun[]Диапазоны стилей символов.
paragraphs?IParagraph[]Метаданные и стили абзацев.
sectionBreaks?ISectionBreak[]Метаданные разрывов разделов.
customBlocks?ICustomBlock[]Заполнители блоков, определяемых плагинами.
tables?ICustomTable[]Маркеры таблиц в теле документа. Определения таблиц хранятся в IDocumentData.tableSource.
columnGroups?ICustomColumnGroup[]Маркеры групп колонок.
blockRanges?IDocumentBlockRange[]Диапазоны структурированных блоков, таких как выноски, цитаты и блоки кода.
customRanges?ICustomRange[]Специальные диапазоны: гиперссылки, поля, закладки, комментарии, упоминания и диапазоны, определяемые плагинами.
customDecorations?ICustomDecoration[]Диапазоны оформления, например подсветка комментариев.
payloads?Record<string, string>Временные полезные данные для копирования и вставки. Это поле не сохраняется.

dataStream

dataStream — источник достоверных данных для текста тела документа. Абзац обычно заканчивается последовательностью \r\n.

TypeScript
const body: IDocumentBody = {  dataStream: 'Title\r\nHello Univer\r\n',  paragraphs: [    { startIndex: 5, paragraphId: 'p-title' },    { startIndex: 19, paragraphId: 'p-body' },  ],}

Специальные символы

Некоторые элементы документа представлены в dataStream управляющими символами, которые средство отрисовки преобразует в соответствующие элементы:

СимволЗначение
\r\nРазрыв абзаца
\nРазрыв раздела
\fРазрыв страницы
\vРазрыв колонки
\tТабуляция
\0Конец документа
\bЗаполнитель пользовательского блока

Таблицы и пользовательские диапазоны также используют управляющие символы внутри структуры. При работе с таблицами, ссылками, комментариями и блочными функциями рекомендуется использовать Facade API или команды, а не вводить управляющие символы вручную.

Связь с IDocumentData

IDocumentBody хранит только основной поток документа. Внешние ресурсы хранятся в IDocumentData:

  • tableSource хранит определения таблиц.
  • drawings хранит изображения и графические объекты.
  • headers и footers содержат собственные объекты IDocumentBody.
  • lists хранит определения списков, на которые ссылаются маркеры абзацев.
  • resources хранит данные, определяемые плагинами.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.