Web SDK

API Univer Docs

Univer Docs предоставляет профессиональные средства вёрстки документов, концептуально близкие к Microsoft Word.

Импорт

TypeScript
import '@univerjs/docs/facade'import '@univerjs/docs-ui/facade'

Работа с документами

В документах unitId служит уникальным идентификатором. Идентификатора subUnitId у документов нет.

Текст документа хранится в строке body.dataStream, которая не содержит сведений о стилях.

Сведения о стилях хранятся отдельно, в другой структуре данных, и связываются с текстом с помощью индексов.

Для обозначения переносов строк, разрывов страниц, разделов, абзацев и таблиц в тексте используются специальные символы. При отрисовке они преобразуются в соответствующие элементы.

Подробнее об устройстве структур данных документа читайте в статьях Univer Document Architecture and Module Design и An Initial Exploration of Univer Document Typesetting Design.

Создание документа

Вызовите univerAPI.createDocument(data), чтобы создать документ и получить его фасадную обёртку FDocument.

Необязательный параметр — объект с исходными данными документа. Если передать {}, будет создан пустой документ.

Если вместо Facade API вы работаете напрямую с базовым экземпляром univer, используйте univer.createUnit(UniverInstanceType.UNIVER_DOC, data).

TypeScript
const doc = univerAPI.createDocument(data)

Получение unitId документа

TypeScript
const doc = univerAPI.getActiveDocument()const unitId = doc?.getId()

Получение данных документа

TypeScript
const doc = univerAPI.getActiveDocument()const saveData = doc.save()

Удаление документа

Когда документ больше не нужен, вызовите метод dispose экземпляра Univer, чтобы уничтожить этот экземпляр.

TypeScript
univer.dispose()

Работа с текстом

Изменяйте текстовые элементы в области форматированного текста.

Вставка текста

Добавьте указанный текст в конец этой области.

TypeScript
const doc = univerAPI.getActiveDocument()doc?.insertText(0, 'Univer')

Удаление текста

Удалите текст по смещениям в документе.

TypeScript
const doc = univerAPI.getActiveDocument()doc?.deleteRange({ startOffset: 0, endOffset: 1 })

Изменение стиля

Задайте стиль текста в абзаце.

TypeScript
const doc = univerAPI.getActiveDocument()const paragraph = doc?.getParagraphs()[0]paragraph?.setStyle({  textStyle: {    cl: {      rgb: '#FF0000',    },  },})

Вставка разрыва страницы

Символ \f обозначает разрыв страницы и позволяет вставить его в документ.

TypeScript
const doc = univerAPI.getActiveDocument()doc?.insertText(0, '\f')

Статистика документа

Используйте базовую модель DocumentDataModel, чтобы подсчитать статистику всего документа или выбранных диапазонов.

TypeScript
const doc = univerAPI.getActiveDocument()if (!doc) throw new Error('No active document')const statistics = await doc.getDocumentDataModel().getStatistics({  locale: univerAPI.Enum.LocaleType.RU_RU,})console.log(statistics.words, statistics.charactersWithSpaces, statistics.paragraphs)

getStatistics() возвращает количество слов, символов и абзацев. Передайте ranges, чтобы считать только выделенный текст, и signal, чтобы отменить ставший ненужным расчёт.

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

© 2026 DreamNum Co., Ltd.