Web SDK

API Univer Sheets

Univer Sheets предоставляет профессиональные возможности для работы с электронными таблицами, а его концепции максимально приближены к Microsoft Excel.

Импорт

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

Книга

Книга содержит несколько листов и представляет собой аналог файла Excel.

Поле unitId можно использовать как уникальный идентификатор книги.

Создание книги

Метод univerAPI.createWorkbook(data, options) создаёт и возвращает объект FWorkbook.

Объект IWorkbookData содержит сведения о конфигурации книги.

TypeScript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' })console.log(fWorkbook)

С помощью параметров можно сделать так, чтобы новая книга не становилась активной:

TypeScript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' }, { makeCurrent: false })console.log(fWorkbook)// If you want to switch to this workbook after 3 secondssetTimeout(() => {  univerAPI.setCurrent(fWorkbook.getId())}, 3000)

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

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const snapshot = fWorkbook.save()console.log(snapshot)

Выгрузка книги

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

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook?.getId()if (unitId) {  univerAPI.disposeUnit(unitId)}

При уничтожении всей страницы, на которой размещён экземпляр Univer, или при выгрузке маршрута обязательно вызовите метод univer.dispose() для очистки вместо univerAPI.disposeUnit. Обратите внимание, что univer и univerAPI — разные экземпляры. О том, как их получить, см. в разделе Установка и основы использования.

Получение идентификатора книги

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook?.getId()

Лист

Листы хранят табличные данные и входят в состав книги.

Книга может содержать несколько листов, при этом имена листов в одной книге не должны повторяться.

Поле subUnitId можно использовать как уникальный идентификатор листа в книге.

Получение листов

Получение всех листов книги

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const sheets = fWorkbook.getSheets()

Получение активного листа

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()

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

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const sheetSnapshot = fWorksheet.getSheet().getSnapshot()

Создание листа

В следующем примере показано, как создать лист с помощью метода FWorkbook.create.

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()// Create a worksheet named 'Sheet2' with 10 rows and 10 columnsconst newSheet = fWorkbook.create('Sheet2', 10, 10)// Create a new sheet named 'MyNewSheetWithData' with 10 rows and 10 columns and some data, and set it as the first sheetconst sheetData = {  // ... Omit other properties  cellData: {    0: {      0: {        v: 'Hello Univer!',      },    },  },  // ... Omit other properties}const newSheetWithData = fWorkbook.create('MyNewSheetWithData', 10, 10, {  index: 0,  sheet: sheetData,})console.log(newSheetWithData)

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

Удалите лист, передав его экземпляр или идентификатор.

TypeScript
// Delete the second worksheetconst fWorkbook = univerAPI.getActiveWorkbook()const sheet = fWorkbook.getSheets()[1]fWorkbook.deleteSheet(sheet)// The code below deletes the specified worksheet by id// fWorkbook.deleteSheet(sheet.getSheetId());

Активация листа

Чтобы активировать лист, передайте его экземпляр или идентификатор либо вызовите метод FWorksheet.activate().

TypeScript
// Activate the second worksheetconst fWorkbook = univerAPI.getActiveWorkbook()const sheet = fWorkbook.getSheets()[1]fWorkbook.setActiveSheet(sheet)// Activates the specified worksheet by id// fWorkbook.setActiveSheet(sheet.getSheetId());// Activate the worksheet using the FWorksheet.activate() method// sheet.activate();

Копирование листа

TypeScript
// The code below duplicates the given worksheetconst fWorkbook = univerAPI.getActiveWorkbook()const activeSheet = fWorkbook.getActiveSheet()const duplicatedSheet = fWorkbook.duplicateSheet(activeSheet)console.log(duplicatedSheet)

Получение идентификатора листа

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()fWorksheet?.getSheetId()

Установка количества строк и столбцов листа

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set row count to 100000fWorksheet.setRowCount(100000)// Set column count to 30fWorksheet.setColumnCount(30)

Обновление листа

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()fWorksheet.refreshCanvas()

Масштаб листа

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set zoom ratio to 200%fWorksheet.zoom(2)const zoomRatio = fWorksheet.getZoom()

Прокрутка до ячейки

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Scroll to cell D10const fRange = fWorksheet.getRange('D10')const row = fRange.getRow()const column = fRange.getColumn()fWorksheet.scrollToCell(row, column)// Add scroll animation durationfWorksheet.scrollToCell(row, column, 1000)// Get scroll stateconst scrollState = fWorksheet.getScrollState()const { offsetX, offsetY, sheetViewStartColumn, sheetViewStartRow } = scrollStateconsole.log(scrollState) // sheetViewStartRow: 9, sheetViewStartColumn: 3, offsetX: 0, offsetY: 0

Основные возможности

Разрешения

См. раздел Разрешения.

Формулы

См. раздел Формулы.

Строки и столбцы

См. раздел Строки и столбцы.

Диапазон

См. раздел Диапазон.

Выделение

См. раздел Выделение.

Ячейка

См. раздел Ячейка.

Закрепление

См. раздел Закрепление.

Интеграция пользовательских компонентов в Univer

См. раздел Интеграция пользовательских компонентов в Univer.

Справочник

Дополнительные сведения см. в следующей документации по API:

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

© 2026 DreamNum Co., Ltd.