指南Univer Sheets功能核心功能Sheet API

Univer Sheets API

概念

Univer 表格相关概念会尽可能与 Excel 保持一致。

工作簿 Workbook

一个工作簿里包含多个工作表,可以看作是一个 Excel 文件。

unitId 可用作工作簿的唯一标识。

创建工作簿

univer.createUnit(UniverInstanceType.UNIVER_SHEET, workbookData) 方法会创建并返回 Workbook 对象。

workbookData 是一个对象,包含了工作簿的配置信息。

const univer = new Univer({
  theme: defaultTheme,
  locale: LocaleType.ZH_CN,
  locales: {
    [LocaleType.ZH_CN]: zhCN,
  },
});
 
univer.registerPlugin(UniverRenderEnginePlugin);
univer.registerPlugin(UniverFormulaEnginePlugin);
univer.registerPlugin(UniverUIPlugin, {
  container: 'app',
});
 
univer.registerPlugin(UniverDocsPlugin);
univer.registerPlugin(UniverDocsUIPlugin);
 
univer.registerPlugin(UniverSheetsPlugin);
univer.registerPlugin(UniverSheetsUIPlugin);
univer.registerPlugin(UniverSheetsFormulaPlugin);
 
// 传入空对象会自动初始化工作簿
univer.createUnit(UniverInstanceType.UNIVER_SHEET, {});

获取工作簿数据

const univerAPI = FUniver.newAPI(univer);
const activeWorkbook = univerAPI.getActiveWorkbook()
const saveData = activeWorkbook.save();

销毁工作簿

当我们不再需要工作簿时,可以调用 FUniverdisposeUniverSheet 方法来销毁实例。

const activeWorkbook = univerAPI.getActiveWorkbook()
const unitId = activeWorkbook && activeWorkbook.getId()
if(unitId){
  univerAPI.disposeUnit(unitId)
}

获取工作簿 ID

const activeWorkbook = univerAPI.getActiveWorkbook()
const unitId = activeWorkbook && activeWorkbook.getId()

工作表 Worksheet

工作表中存储着表格数据,工作表属于工作薄,

一个工作薄可以包含多个工作表,同一个工作薄中工作表的名称不能重复。

subUnitId 可用作在工作薄中工作表的唯一标识。

获取工作表

获取工作薄中所有工作表

const activeWorkbook = univerAPI.getActiveWorkbook();
const sheets = activeWorkbook.save().sheets;

获取工作薄中当前激活的工作表

const sheet = univerAPI.getActiveWorkbook().getActiveSheet();

获取工作表数据

const activeWorkbook = univerAPI.getActiveWorkbook();
const snapshot = activeWorkbook.save()
const sheet1 = Object.values(snapshot.sheets).find((sheet) => {
  return sheet.name === 'Sheet1'
})

创建工作表

在创建工作薄时,如果不传入参数,会自动创建一个工作表。

下面例子展示通过 Workbook.create 方法创建一个工作表。

const univer = new Univer({
  theme: defaultTheme,
  locale: LocaleType.ZH_CN,
  locales: {
    [LocaleType.ZH_CN]: zhCN,
  },
});
 
univer.registerPlugin(UniverRenderEnginePlugin);
univer.registerPlugin(UniverFormulaEnginePlugin);
univer.registerPlugin(UniverUIPlugin, {
  container: 'app',
});
 
univer.registerPlugin(UniverDocsPlugin);
univer.registerPlugin(UniverDocsUIPlugin);
 
univer.registerPlugin(UniverSheetsPlugin);
univer.registerPlugin(UniverSheetsUIPlugin);
univer.registerPlugin(UniverSheetsFormulaPlugin);
 
// 传入空对象会自动初始化工作簿
univer.createUnit(UniverInstanceType.UNIVER_SHEET, {})
 
const univerAPI = FUniver.newAPI(univer);
const activeWorkbook = univerAPI.getActiveWorkbook();
 
// 创建一个名为 'Sheet2' 的工作表,包含 10 行和 10 列
const sheet2 = activeWorkbook.create('Sheet2', 10, 10)

删除工作表

删除工作表需要知道工作表的 Id。

import { RemoveSheetCommand } from '@univerjs/sheets'
 
const sheetId = 'SheetId';
univerAPI.executeCommand(RemoveSheetCommand.id, { subUnitId: sheetId });

激活工作表

激活工作表需要知道工作薄的 Id 和工作表的 Id。

import { SetWorksheetActiveOperation } from '@univerjs/sheets'
 
const workbookId = 'WorkbookId';
const sheetId = 'SheetId';
univerAPI.executeCommand(SetWorksheetActiveOperation.id, { unitId: workbookId, subUnitId: sheetId });

获取工作表 ID

const sheet = univerAPI.getActiveWorkbook().getActiveSheet();
const sheetId = sheet && sheet.getSheetId();

核心功能

权限控制

公式

行列操作

范围Range

选区Selection

单元格Cell

冻结

集成自定义组件

参考

更多 API 请查看:


这个页面对您有帮助吗?