画板数据结构

IBoardData

IBoardData 是 Univer 画板使用的快照格式。它用于描述一个画板单元,包括页面顺序、页面数据、资源、主题、当前页面、缩放比例和画板级设置。

属性

属性类型说明
idstring画板单元的唯一 ID。
rev?number可选的修订值,供持久化层或协作层使用。
namestring画板名称。
appVersionstring创建该快照的软件包版本。
locale?string画板的区域设置。
defaultPageSizeIBoardPageSize画板页面的默认尺寸。
pageOrderstring[]按顺序排列的画板页面 ID 列表。
pagesRecord\<string, IBoardPage\>以页面 ID 为键的页面快照。
activePageId?string当前页面的 ID。
theme?IBoardThemeData当前画板主题。
themes?Record\<string, IBoardThemeData\>其他具名主题。
zoomRatio?number当前缩放比例。
resources?IResources图片、富文本、表格及其他元素使用的外部资源。
custom?`Record<string, unknown>null`
boardSettings?IBoardSettings画板级 UI 和交互设置。

页面数据

IBoardPage 按 ID 存储元素,并使用 elementOrder 定义渲染顺序。自行构建快照时,请确保这两个数据结构保持同步。

TypeScript
const boardData = {  id: 'board-1',  name: 'Planning board',  appVersion: '1.0.0',  defaultPageSize: { width: 1920, height: 1080 },  pageOrder: ['page-1'],  pages: {    'page-1': {      id: 'page-1',      pageType: 'page',      name: 'Page 1',      elementOrder: ['text-1'],      elements: {        'text-1': {          id: 'text-1',          type: 'text',          transform: { left: 120, top: 96, width: 240, height: 80 },          text: 'Kickoff',        },      },    },  },  activePageId: 'page-1',}

用途

IBoardData 主要用于:

  1. 创建 UniverInstanceType.UNIVER_BOARD 单元。
  2. 持久化和恢复画板文档。
  3. 为导入、导出或服务端处理准备数据。
  4. 在渲染前为画板预置页面、元素和设置。

快照对象属于持久化数据。画板运行后,请优先使用 Facade API,不要直接修改快照对象。

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.