API Univer Sheets
Univer Sheets предоставляет профессиональные возможности для работы с электронными таблицами, а его концепции максимально приближены к Microsoft Excel.
Импорт
import '@univerjs/sheets/facade'import '@univerjs/sheets-ui/facade'Книга
Книга содержит несколько листов и представляет собой аналог файла Excel.
Поле unitId можно использовать как уникальный идентификатор книги.
Создание книги
Метод univerAPI.createWorkbook(data, options) создаёт и возвращает объект FWorkbook.
Объект IWorkbookData содержит сведения о конфигурации книги.
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' })console.log(fWorkbook)С помощью параметров можно сделать так, чтобы новая книга не становилась активной:
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)Получение данных книги
const fWorkbook = univerAPI.getActiveWorkbook()const snapshot = fWorkbook.save()console.log(snapshot)Выгрузка книги
Когда Workbook больше не нужна, вызовите метод disposeUnit экземпляра API, чтобы выгрузить её.
const fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook?.getId()if (unitId) { univerAPI.disposeUnit(unitId)}При уничтожении всей страницы, на которой размещён экземпляр Univer, или при выгрузке маршрута обязательно вызовите метод univer.dispose() для очистки вместо univerAPI.disposeUnit.
Обратите внимание, что univer и univerAPI — разные экземпляры. О том, как их получить, см. в разделе Установка и основы использования.
Получение идентификатора книги
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook?.getId()Лист
Листы хранят табличные данные и входят в состав книги.
Книга может содержать несколько листов, при этом имена листов в одной книге не должны повторяться.
Поле subUnitId можно использовать как уникальный идентификатор листа в книге.
Получение листов
Получение всех листов книги
const fWorkbook = univerAPI.getActiveWorkbook()const sheets = fWorkbook.getSheets()Получение активного листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()Получение данных листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const sheetSnapshot = fWorksheet.getSheet().getSnapshot()Создание листа
В следующем примере показано, как создать лист с помощью метода FWorkbook.create.
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)Удаление листа
Удалите лист, передав его экземпляр или идентификатор.
// 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().
// 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();Копирование листа
// The code below duplicates the given worksheetconst fWorkbook = univerAPI.getActiveWorkbook()const activeSheet = fWorkbook.getActiveSheet()const duplicatedSheet = fWorkbook.duplicateSheet(activeSheet)console.log(duplicatedSheet)Получение идентификатора листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()fWorksheet?.getSheetId()Установка количества строк и столбцов листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set row count to 100000fWorksheet.setRowCount(100000)// Set column count to 30fWorksheet.setColumnCount(30)Обновление листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()fWorksheet.refreshCanvas()Масштаб листа
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set zoom ratio to 200%fWorksheet.zoom(2)const zoomRatio = fWorksheet.getZoom()Прокрутка до ячейки
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:
Насколько полезно это руководство?