Base 快照

IBaseSnapshot

IBaseSnapshot 是 Univer Bases 使用的持久化格式。它描述一個 Base 單元,其中包含資料表、資料表順序、結構描述版本、時間戳記,以及選用的修訂中繼資料。

屬性

屬性類型說明
idstringBase 單元的唯一 ID。
namestringBase 名稱。
schemaVersionnumber快照結構描述版本。
tablesRecord\<string, ITableSnapshot\>以資料表 ID 為鍵的資料表。
tableOrderstring[]依序排列的資料表 ID 清單。
createdAtnumber建立時間戳記。
updatedAtnumber更新時間戳記。
createdBy?string建立者 ID。
rev?number供持久化或協作層使用的選用修訂值。

最小快照

TypeScript
const baseSnapshot = {  id: 'base-1',  name: 'Product tracker',  schemaVersion: 1,  tableOrder: ['tasks'],  tables: {    tasks: {      id: 'tasks',      name: 'Tasks',      primaryFieldId: 'title',      fieldOrder: ['title', 'status'],      fields: {        title: { id: 'title', name: 'Title', type: 'text', config: {} },        status: { id: 'status', name: 'Status', type: 'singleSelect', config: {} },      },      recordOrder: ['rec-1'],      records: {        'rec-1': {          id: 'rec-1',          values: { title: 'Write docs', status: 'In progress' },          orderKey: 'a0',          createdAt: Date.now(),          updatedAt: Date.now(),        },      },      views: {},      viewOrder: [],    },  },  createdAt: Date.now(),  updatedAt: Date.now(),}

用途

IBaseSnapshot 主要用於:

  1. 建立 UniverInstanceType.UNIVER_BASE 單元。
  2. 持久化及還原結構化資料。
  3. 準備要在伺服器端處理的資料。
  4. 在協作服務與匯入/匯出服務之間傳輸資料。

快照物件是持久化資料。Base 開始執行後,請優先使用 Facade API,不要直接修改快照物件。

儲存與還原

透過 Facade save() 保留已註冊外掛的資源,例如儀表盤與本機評論。saveToBackend 是你的持久化函式。

TypeScript
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await saveToBackend(base.save())

在新編輯器中先註冊相同外掛,再呼叫 univerAPI.createBase(savedSnapshot)。不要只儲存 tables 或直接修改執行中的模型快照。

你覺得這篇文檔如何?

© 2026 DreamNum Co., Ltd.