指南Univer Sheets开始使用工作表数据结构

Univer Sheets 数据结构

本文档描述了 Univer Sheets 中使用的主要数据结构:IWorkbookDataIWorksheetData

IWorkbookData

IWorkbookData 表示 Univer Sheets 中工作簿的快照。

属性

属性类型描述
idstringUniver Sheets 的唯一标识符。
namestringUniver Sheets 的名称。
appVersionstringUniver 模型定义的版本。
localeLocaleType文档的语言环境。
stylesRecord<string, Nullable<IStyleData>>工作簿的样式引用。
sheetOrderstring[]表示工作表顺序的工作表 ID 数组。
sheets{ [sheetId: string]: Partial<IWorksheetData> }包含每个工作表数据的记录。
resources?IResources其他插件的可选资源。

示例

const workbookData: IWorkbookData = {
    id: 'unique-workbook-id',
    name: '我的工作簿',
    appVersion: '1.0.0',
    locale: LocaleType.ZH_CN,
    styles: { /* 样式定义 */ },
    sheetOrder: ['sheet1', 'sheet2'],
    sheets: {
        sheet1: { /* 工作表数据 */ },
        sheet2: { /* 工作表数据 */ }
    }
};

使用

IWorkbookData 是 univer-sheet 存储数据的对象。主要用于

  1. 使用 IWorkbookData 创建 univer-Sheet
  2. 从 univer-Sheet 中保存 IWorkbookData

IWorksheetData

IWorksheetData 表示 Univer Sheets 中工作表的快照。

属性

属性类型描述
idstring工作表的唯一标识符。
namestring工作表的名称。
tabColorstring工作表标签的颜色。
hiddenBooleanNumber工作表是否隐藏。默认值:BooleanNumber.FALSE
freezeIFreeze冻结窗格设置。
rowCountnumber总行数。
columnCountnumber总列数。
defaultColumnWidthnumber列的默认宽度。
defaultRowHeightnumber行的默认高度。
mergeDataIRange[]合并单元格范围的数组。
cellDataIObjectMatrixPrimitiveType<ICellData>单元格内容的矩阵。详情
rowDataIObjectArrayPrimitiveType<Partial<IRowData>>行数据对象的数组。
columnDataIObjectArrayPrimitiveType<Partial<IColumnData>>列数据对象的数组。
rowHeader{ width: number; hidden?: BooleanNumber; }行标题配置。
columnHeader{ height: number; hidden?: BooleanNumber; }列标题配置。
showGridlinesBooleanNumber是否显示网格线。
rightToLeftBooleanNumber工作表是否为从右到左模式。
defaultStyleNullable<IStyleData>默认工作表样式

示例

const worksheetData: IWorksheetData = {
  id: 'sheet1',
  name: '工作表 1',
  tabColor: '#FF0000',
  hidden: BooleanNumber.FALSE,
  freeze: { xSplit: 1, ySplit: 1, startRow: 1, startColumn: 1 },
  rowCount: 1000,
  columnCount: 26,
  defaultColumnWidth: 100,
  defaultRowHeight: 25,
  mergeData: [],
  cellData: {
    '0': {
        '0': {
            v: 123
        }
    }
  },
  rowData: [],
  columnData: [],
  rowHeader: { width: 40 },
  columnHeader: { height: 20 },
  showGridlines: BooleanNumber.TRUE,
  rightToLeft: BooleanNumber.FALSE
};

这个结构提供了工作表数据的全面表示,包括布局、内容和显示设置。

完整示例

const workbook: IWorkbookData = {
  "id": "gyI0JO",
  "sheetOrder": [
      "RSfWjJFv4opmE1JaiRj80"
  ],
  "name": "",
  "appVersion": "0.1.11",
  "locale": "zhCN",
  "styles": {},
  "sheets": {
      "RSfWjJFv4opmE1JaiRj80": {
          "id": "RSfWjJFv4opmE1JaiRj80",
          "name": "测试",
          "tabColor": "",
          "hidden": 0,
          "rowCount": 30,
          "columnCount": 10,
          "zoomRatio": 1,
          "freeze": {
              "startRow": -1,
              "startColumn": -1,
              "ySplit": 0,
              "xSplit": 0
          },
          "scrollTop": 0,
          "scrollLeft": 0,
          "defaultColumnWidth": 73,
          "defaultRowHeight": 23,
          "mergeData": [],
          "cellData": {},
          "rowData": {},
          "columnData": {
              "0": {
                  "w": 125,
                  "hd": 0
              },
              "1": {
                  "w": 125,
                  "hd": 0
              },
              "2": {
                  "w": 125,
                  "hd": 0
              },
              "3": {
                  "w": 125,
                  "hd": 0
              },
              "4": {
                  "w": 125,
                  "hd": 0
              },
              "5": {
                  "w": 125,
                  "hd": 0
              },
              "6": {
                  "w": 125,
                  "hd": 0
              },
              "7": {
                  "w": 125,
                  "hd": 0
              },
              "8": {
                  "w": 125,
                  "hd": 0
              },
              "9": {
                  "w": 125,
                  "hd": 0
              }
          },
          "showGridlines": 1,
          "rowHeader": {
              "width": 46,
              "hidden": 0
          },
          "columnHeader": {
              "height": 20,
              "hidden": 0
          },
          "selections": [
              "A1"
          ],
          "rightToLeft": 0
      }
  },
  "resources": [
      {
          "name": "SHEET_DEFINED_NAME_PLUGIN",
          "data": ""
      }
  ]
}