インポートとエクスポート

プラグイン情報

Bases は XLSX、XLS、CSV、TSV のインポートと、XLSX、CSV、TSV のエクスポートに対応します。例えば、Excel の顧客一覧を取り込み、フィールドとビューを追加して、テーブルのデータを書き出せます。

これらの API には変換用のバックエンドが必要です。ファイル交換の統合から始め、バックエンドが Bases ドキュメントと必要な形式に対応することを確認してください。

対応形式

以下は、このページで説明するブラウザー API の対応形式です。Office ファイル変換には、同じドキュメント種別と形式を扱えるバックエンドが必要です。

インポートエクスポート
.xls, .xlsx, .csv, .tsv.xlsx, .csv, .tsv

CSV と TSV は 1 つのテーブルを出力し、tableId で対象を選びます。これらのテキスト形式はビュー、権限、その他の Base リソースを保持しません。完全なバックアップには Base スナップショットを使ってください。

インストールと登録

初期化済みの Bases エディターに以下を追加します。

Shell
pnpm add @univerjs-pro/exchange-client @univerjs-pro/bases-exchange-client
TypeScript
import { UniverBasesExchangeClientPlugin } from '@univerjs-pro/bases-exchange-client'import { UniverExchangeClientPlugin } from '@univerjs-pro/exchange-client'import '@univerjs-pro/bases/facade'import '@univerjs-pro/bases-exchange-client/facade'import '@univerjs-pro/exchange-client/facade'import '@univerjs-pro/exchange-client/lib/index.css'import '@univerjs-pro/bases-exchange-client/lib/index.css'univer.registerPlugin(UniverExchangeClientPlugin, exchangeConfig)univer.registerPlugin(UniverBasesExchangeClientPlugin)

exchangeConfig はアップロード、変換、タスク照会、ダウンロードの設定です。統合ガイドに従って用意してください。国際化の説明に従い、両パッケージの locale/en-US リソースを locales にマージします。

ページで編集するためにインポートする

file はユーザーが選択した File またはリモートファイルの URL です。返されるスナップショットはエディターが読み込める Base データです。

TypeScript
const snapshot = await univerAPI.importBaseToSnapshotAsync(file)if (snapshot) {  univerAPI.createBase(snapshot)}

スナップショットのインポートに共同編集は不要ですが、サーバー側の変換は必要です。後から作業を再開できるようにするには、スナップショットの保存と復元に従い base.save() の結果を保存します。

ファイルのエクスポート

現在の Base を Excel として書き出します。

TypeScript
import { ExchangeFormat } from '@univerjs-pro/exchange-client'const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')const file = await univerAPI.exportBaseBySnapshotAsync(base.save(), ExchangeFormat.XLSX)if (file) {  univerAPI.downloadFile(file, 'database', ExchangeFormat.XLSX)}

CSV と TSV は 1 つのテーブルを表します。複数のテーブルを持つ Base から出力する場合は tableId を明示してください。

TypeScript
const table = base.getTables()[0]if (!table) throw new Error('Create a table first')const file = await univerAPI.exportBaseBySnapshotAsync(  base.save(),  ExchangeFormat.CSV,  table.getId(),)if (file) {  univerAPI.downloadFile(file, table.getName(), ExchangeFormat.CSV)}

TSV には ExchangeFormat.CSV を ExchangeFormat.TSV に置き換えます。ファイル出力はテーブルデータの交換用です。完全なバックアップには Base スナップショットを保存してください。CSV はビュー、権限、その他のリソースを保持しません。

共同編集ドキュメントのインポート

Bases の共同編集を接続してからインポートし、サーバーが返したドキュメント ID を読み込みます。

TypeScript
import '@univerjs-pro/collaboration-client/facade'const unitId = await univerAPI.importBaseToUnitIdAsync(file)if (unitId) {  await univerAPI.getCollaboration().loadBaseAsync(unitId)}

サーバーのドキュメントは exportBaseByUnitIdAsync(unitId, format, tableId?) で出力します。ブラウザーの未送信の編集内容が同期されるのを待ってから実行してください。

Excel の構造と数式

Bases 交換プラグインの設定で変換動作を変更できます。次はデフォルト値です。先ほどの登録の代わりに使用してください。

TypeScript
import {  ExchangeBaseExportMode,  ExchangeBaseFormulaPolicy,  ExchangeBaseImportMode,} from '@univerjs-pro/exchange-client'univer.registerPlugin(UniverBasesExchangeClientPlugin, {  importSourceMode: ExchangeBaseImportMode.AUTO,  importFormulaPolicy: ExchangeBaseFormulaPolicy.CONVERT_THEN_VALUES,  exportStructureMode: ExchangeBaseExportMode.TABLES,  exportFormulaPolicy: ExchangeBaseFormulaPolicy.FAIL,})
  • インポート元:AUTO は Excel テーブルと表示中のワークシートを自動選択します。TABLES は Excel テーブルのみ、SHEETS は表示中のワークシート、HYBRID は Excel テーブルと Excel テーブルを含まない表示中のワークシートを取り込みます。
  • 出力構造:TABLES は空でない Base テーブルをネイティブの Excel テーブルにし、空のテーブルは通常の範囲にします。RANGES はすべて通常のワークシート範囲として出力します。
  • 数式:インポートでは変換を試み、未対応の数式にはキャッシュ結果を使います。エクスポートはデフォルトで変換の成功を必要とします。VALUES はキャッシュ結果のみ、TEXT は元の数式をテキストとして保持します。エクスポートの CONVERT_THEN_VALUES でも、数式を変換できなければ失敗します。

実際の業務ファイルでフィールドと数式の変換を確認してください。これらのメソッドは undefined を返す場合も、リクエストや変換のエラーを投げる場合もあります。UI で両方を処理してください。

このガイドはいかがですか?

© 2026 DreamNum Co., Ltd.