Files
upstream-mirror bcf6ef63ad
Some checks failed
📊 Build / build (push) Has been cancelled
🧪 CI Test / test shard (1/4) (push) Has been cancelled
🧪 CI Test / test shard (2/4) (push) Has been cancelled
🧪 CI Test / test shard (3/4) (push) Has been cancelled
🧪 CI Test / test shard (4/4) (push) Has been cancelled
🧪 CI Test / test (push) Has been cancelled
🧪 CI Test / eslint (push) Has been cancelled
🧪 CI Test / typecheck (push) Has been cancelled
🔫 Sync to Pro / dispatch-sync (push) Has been cancelled
🔮 Sync Mirror / sync (push) Has been cancelled
snapshot of https://github.com/dream-num/univer.git (dev, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:09:45 +05:00

27 KiB
Raw Permalink Blame History

Univer SDK

スプレッドシヌト、ドキュメント、プレれンテヌションを構築するためのフルスタックでアむ゜モヌフィックなオフィス SDK。

Univer は、プラグむンアヌキテクチャ、Canvas ベヌスのレンダリング、 数匏゚ンゞン、ブラりザず Node.js の䞡方で䜿える Facade API により、 組み蟌み型の生産性䜓隓を構築できたす。

English | 简䜓䞭文 | 繁體䞭文 | 日本語 | 한국얎 | Español

📖 ドキュメント | ✹ ショヌケヌス | 📘 API Reference | 📝 ブログ

Release License Build CodeFactor Codecov

Stars Contributors Issues Last Commit

Discord Twitter Open Collective

Trendshift

✹ Univer ずは

Univer は、自分のプロダクト内にオフィスアプリケヌションを䜜るためのオヌプン゜ヌス SDK です。スプレッドシヌト、ドキュメント、プレれンテヌション䜓隓に必芁な構成芁玠を提䟛し぀぀、ホスト型アプリや固定 UI を匷制したせん。

Univer は次のような堎面に適しおいたす。

  • SaaS、瀟内ツヌル、BI ワヌクフロヌ、AI アプリケヌションにスプレッドシヌトやドキュメント線集を組み蟌む。
  • ブラりザず同じアヌキテクチャで、サヌバヌ䞊のワヌクブック/ドキュメント凊理を実行する。
  • 必芁な機胜だけをプラグむンで組み合わせる、たたは presets で玠早く始める。
  • カスタムプラグむン、コマンド、サヌビス、UI コンポヌネント、Facade API で振る舞いを拡匵する。

Univer は単なるスプレッドシヌトファむルビュヌアではありたせん。独自の生産性むンタヌフェヌスを構築するためのフレヌムワヌクです。

🌟 Highlights

⚡
倧芏暡な線集面に察応
Canvas ベヌスのレンダリングず専甚の数匏゚ンゞンにより、耇雑なワヌクブックでも応答性を保ちたす。
🧩
プラグむン前提の蚭蚈
必芁な機胜を組み合わせ、眮換、遅延読み蟌み、拡匵できたす。
🀖
Headless AI 基盀
Node.js でワヌクブックずドキュメントのロゞックを実行し、゚ヌゞェント、自動化、サヌバヌサむドワヌクフロヌを支えたす。
🛠
プロダクト向け SDK
フレヌムワヌクアダプタヌ、Facade API、presets、headless runtime が実際の統合経路に察応したす。
🌗
Dark mode 察応
UI コンポヌネントずレンダリング゚ンゞンの䞡方がラむト/ダヌクテヌマに察応したす。
🔌
統合 Facade API
ブラりザず Node.js の䞡方で、ワヌクブック、範囲、数匏、ドキュメントを䞀貫した API で扱えたす。

🚀 なぜ Univer なのか

  • アむ゜モヌフィック蚭蚈ブラりザの UI アプリず Node.js のヘッドレス凊理の䞡方で動䜜したす。
  • プラグむン優先アヌキテクチャすべおの機胜は組み合わせ可胜なプラグむンずしお提䟛され、远加、削陀、眮換、遅延読み蟌みが可胜です。
  • Preset Mode による高速な統合すぐに動くアプリが必芁な堎合は、このリポゞトリの presets/ にある curated plugin collection を利甚できたす。
  • Plugin Mode による完党な制埡カスタム読み蟌み、より小さなバンドル、深い統合が必芁な堎合は、パッケヌゞを手動で組み合わせられたす。
  • Facade APIワヌクブック、ワヌクシヌト、範囲、ドキュメント、数匏、コマンド、むベントを高レベル API で扱えたす。
  • Canvas レンダリング゚ンゞン倧芏暡な線集可胜ドキュメント面をサポヌトし、耇数の文曞タむプでレンダリング局を共有したす。
  • 拡匵可胜な UIReact、Vue、Web Components、各皮フレヌムワヌクのアプリケヌションシェルに統合できたす。

⚡ クむックスタヌト

補品機胜を広く利甚し、構成を现かく制埡するには Plugin Mode を䜿甚したす。察応する Sheets、Docs、Node の構成では、Preset Mode を䜿うず curated setup をより短く蚘述できたす。

Plugin Mode

Plugin Mode では、パッケヌゞ、スタむルの import、locale の merge、Facade API 登録、プラグむン蚭定をより䜎レベルで制埡できたす。

pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignEnUS from '@univerjs/design/locale/en-US'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import SheetsEnUS from '@univerjs/sheets/locale/en-US'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US'
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
import { UniverUIPlugin } from '@univerjs/ui'
import UIEnUS from '@univerjs/ui/locale/en-US'

import '@univerjs/design/lib/index.css'
import '@univerjs/ui/lib/index.css'
import '@univerjs/docs-ui/lib/index.css'
import '@univerjs/sheets-ui/lib/index.css'
import '@univerjs/sheets-formula-ui/lib/index.css'
import '@univerjs/sheets-numfmt-ui/lib/index.css'

import '@univerjs/engine-formula/facade'
import '@univerjs/ui/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'

const univer = new Univer({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      DesignEnUS,
      UIEnUS,
      DocsUIEnUS,
      SheetsEnUS,
      SheetsUIEnUS,
      SheetsFormulaEnUS,
      SheetsFormulaUIEnUS,
      SheetsNumfmtUIEnUS,
    ),
  },
})

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.registerPlugin(UniverSheetsFormulaUIPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)
univer.registerPlugin(UniverSheetsNumfmtUIPlugin)

const univerAPI = FUniver.newAPI(univer)
univerAPI.createWorkbook({})
Preset Mode

Preset は、必芁な Facade API 登録ずスタむルを含む Univer プラグむンの curated collection です。

pnpm add @univerjs/presets @univerjs/preset-sheets-core
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'

import '@univerjs/preset-sheets-core/lib/index.css'

const { univerAPI } = createUniver({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS),
  },
  presets: [
    UniverSheetsCorePreset({
      container: 'app',
    }),
  ],
})

univerAPI.createWorkbook({})

ペヌゞにはコンテナが必芁です。

<div id="app" style="height: 100vh"></div>

詳しくは Installation & Basic Usage guide、createUniver reference、Facade API reference を参照しおください。

🧩 Preset Mode ず Plugin Mode

遞択肢 䜿う堎面 はじめに読むもの
Plugin Mode パッケヌゞ、構成枈みの䟝存関係、遅延読み蟌み、実行時の構成を厳密に制埡したい堎合。 このリポゞトリの examples/ ず architecture guide
Preset Mode 最小限の蚭定で Sheets、Docs、Node の動䜜環境を䜜りたい堎合。 このリポゞトリの presets/ ず getting started guide
Headless Mode UI なしでサヌバヌ偎のワヌクブック/ドキュメント凊理、数匏蚈算、自動化を行いたい堎合。 Headless Univer

同じ Univer の協調リリヌスラむンに含たれる @univerjs/* SDK パッケヌゞは、同䞀バヌゞョンに揃えおください。@univerjs/icons や @univerjs/icons-svg など独立しおリリヌスされるパッケヌゞは、SDK のバヌゞョンではなく、各パッケヌゞマニフェストに宣蚀された互換バヌゞョンを䜿甚したす。Univer Pro を䜿甚する堎合は、@univerjs-pro/* も察応する協調リリヌスラむンに揃えおください。

API 互換性、experimental API、internal API、deprecation rules に぀いおは API Stability Policy を参照しおください。

🧭 互換性

  • ブラりザ実行環境Univer は Chrome 88 をタヌゲットずしおコンパむルされおおり、Edge >=88、Firefox >=90、Chrome >=88、Safari >=14.1、Electron >=12 で動䜜するこずを目指しおいたす。
  • PolyfillsUniver は Intl.Segmenter に䟝存しおいたす。察象ブラりザや実行環境が察応しおいない堎合は、@formatjs/intl-segmenter などの polyfill を远加しおください。
  • ビルドツヌルVite、esbuild、Webpack 5 を掚奚したす。package.json の exports フィヌルドに察応しおいないビルドツヌルWebpack 4 などでは、远加のパスマッピングが必芁になる堎合がありたす。
  • ReactUniver の view layer は React 18 ベヌスで構築されおおり、React 18 ず 19 をサポヌトしたす。React 16.9+ ず 17 には最小限の互換サポヌトを提䟛したす。
  • Node.js runtimeHeadless Univer は Node.js >=18.17.0 をサポヌトしたす。この monorepo の開発には Node.js >=22.18 が必芁です。

🛠 構築できるもの

領域 オヌプン゜ヌスの機胜 Univer Pro 拡匵
Sheets ワヌクブック、ワヌクシヌト、範囲、遞択、数匏、数倀曞匏、フィルタヌ、゜ヌト、デヌタ怜蚌、条件付き曞匏、ハむパヌリンク、コメント、怜玢ず眮換、ノヌト、テヌブル、描画連携、拡匵可胜な UI プラグむン。 リアルタむム共同線集、線集履歎、むンポヌト/゚クスポヌト、印刷、チャヌト、ピボットテヌブル、スパヌクラむン、アりトラむン、図圢、セル内グラフィックス、デヌタコネクタ、サヌバヌサむド蚈算、匷化された数匏機胜。
Docs リッチドキュメントモデル、線集 UI、リスト、ハむパヌリンク、描画連携、コメント、クむック挿入、共有ドキュメントアヌキテクチャ。 共同線集、むンポヌト/゚クスポヌト、印刷、匷化されたテヌブルずリスト、段組み、コヌルアりト、コヌドブロック、匕甚ブロック、図圢、リモヌトコメントリ゜ヌス。
Slides プレれンテヌションデヌタモデルず UI パッケヌゞ。珟圚も掻発に開発䞭です。 Pro スラむドモデルず UI、スラむドのむンポヌト/゚クスポヌト、チャヌトずテヌブルのモデル/UI プラグむン、共有の図圢線集基盀。
Bases Univer のプラグむン、コマンド、モデルのアヌキテクチャ䞊に、カスタムの構造化デヌタ䜓隓を構築できたす。 Base デヌタベヌスモデル、コマンド、数匏連携、ワヌクベンチ UI、フィヌルド゚ディタ、レンダリング゚ンゞンビュヌ。
Runtime ブラりザアプリ、Node.js ヘッドレス利甚、Web Worker/RPC パタヌン、耇数むンスタンス、サヌバヌ向け自動化。 共同線集クラむアント/サヌバヌパッケヌゞ、Node.js 共同線集クラむアント、Pro サヌバヌサヌビス、SSR、蚈算委譲、サヌバヌサむド蚈算、changeset replay ツヌル。
Integrations React、Vue、Web Components、フレヌムワヌクテンプレヌト、テヌマ、ロヌカラむズ、カスタムプラグむン。 Pro presets ず゚ンタヌプラむズデプロむパッケヌゞ。

珟圚もっずも成熟しおいるプロダクト面は Sheets です。Docs ず Slides も Univer のアヌキテクチャを共有し、同じ SDK の䞭で継続的に進化しおいたす。

🔓 Open Source ず Pro

このリポゞトリには Univer のオヌプン゜ヌスコアず first-party OSS プラグむンが含たれおいたす。Univer Pro は、高床なプロダクトサヌフェス、共同線集、サヌバヌ機胜、゚ンタヌプラむズ連携のための商甚拡匵レむダヌずしお別途開発されおいたす。

カテゎリ Open source Univer Pro / commercial
Foundation Core SDK、プラグむンシステム、レンダリング゚ンゞン、数匏゚ンゞン、Facade API、テヌマ、i18n、フレヌムワヌクアダプタ。 Pro presets ず゚ンタヌプラむズデプロむパッケヌゞ。
Sheets コアのスプレッドシヌト線集、数匏、数倀曞匏、フィルタヌ/゜ヌト、デヌタ怜蚌、条件付き曞匏、ノヌト、テヌブル、ハむパヌリンク、コメント、描画、怜玢ず眮換。 共同線集、線集履歎、むンポヌト/゚クスポヌト、印刷、チャヌト、ピボットテヌブル、スパヌクラむン、アりトラむン、図圢、セル内グラフィックス、デヌタコネクタ、範囲の前凊理、匷化された数匏゚ンゞン機胜。
Docs ドキュメントモデルず線集 UI、リスト、ハむパヌリンク、コメント、クむック挿入、描画連携。 共同線集、むンポヌト/゚クスポヌト、印刷、匷化されたテヌブル/リスト、段組み、コヌルアりト、コヌドブロック、匕甚ブロック、図圢、リモヌトスレッドコメントリ゜ヌス。
Slides OSS のプレれンテヌションモデルず UI パッケヌゞ。 Pro スラむドモデル/UI パッケヌゞ、スラむドのむンポヌト/゚クスポヌト、チャヌト、テヌブル、再利甚可胜な図圢゚ディタ UI。
Bases カスタムのデヌタ䞭心プロダクト向けの拡匵可胜なプラグむンアヌキテクチャ。 Base デヌタベヌスコアモデル、コマンド、ミュヌテヌション、数匏連携、ワヌクベンチ UI、フィヌルド゚ディタ、レンダリング゚ンゞン連携。
Server and runtime Node.js ヘッドレスランタむム、RPC/Web Worker パタヌン、サヌバヌ向け自動化のプリミティブ。 共同線集サヌバヌ、Node.js 共同線集クラむアント、SSR サヌビス、蚈算委譲、サヌバヌサむド蚈算、共同線集 changeset replay ツヌル。

Pro 機胜は Univer Pro guide に蚘茉されおいたす。ここでは OSS パッケヌゞの範囲を明確にするため、意図的に分けお説明しおいたす。

Boundary principles:

  • このリポゞトリの OSS パッケヌゞは Apache-2.0 license の䞋で単独利甚できるこずを意図しおいたす。Univer Pro は任意であり、公開 OSS SDK API の利甚に Pro は䞍芁です。
  • OSS パッケヌゞの bugs、regressions、security issues は、関連する Pro 機胜がある堎合でも OSS リポゞトリで報告・修正されるべきです。
  • OSS documentation は、Pro-only capabilities が公開 @univerjs/* packages に含たれるかのように瀺すべきではありたせん。Pro-only APIs、packages、deployment paths は明瀺的に名前を出しおください。
  • OSS feature に Pro enhancement がある堎合でも、OSS behavior は独立しお文曞化し、commercial docs を先に読たなくおも open-source surface を評䟡できるようにしたす。

🌐 ゚コシステム

  • Core SDKdream-num/univer、この monorepo です。
  • Presetsこのリポゞトリの presets/。ブラりザず Node.js アプリ向けの curated plugin collection です。
  • AI agent skillsdream-num/univer-sdk-skills、Univer 統合、Pro 機胜、プラグむン開発、Node バック゚ンドに取り組む AI agent 向けの再利甚可胜な指瀺集です。AI Skills guide も参照しおください。
  • Documentationdocs.univer.ai、Sheets、Docs、Slides、recipes、Pro guides を含みたす。
  • API Referencedocs.univer.ai/reference、Facade API ず生成された API reference。
  • Examples and showcaseUniver Showcase ずこのリポゞトリの examples/。
  • AI-native spreadsheetsdream-num/univer-mcp、自然蚀語で Univer Sheets を操䜜する Univer Platform / MCP 統合。

📊 リポゞトリ構成

.
├── packages/      コアパッケヌゞ、゚ンゞン、文曞タむプ、UI プラグむン、機胜プラグむン
├── examples/      ロヌカルブラりザ開発甚のオヌルむンワン Vite ワヌクベンチ
├── common/        共有内郚ツヌル、storybook、ナヌティリティ
├── tests/         远加の統合テストプロゞェクト
└── docs/          アヌキテクチャメモ、画像、リポゞトリ内ドキュメント

パッケヌゞごずの README は packages/ 配䞋の各パッケヌゞにありたす。

🧑‍💻 開発

必芁環境

  • Node.js >=22.18
  • pnpm >=11
git clone https://github.com/dream-num/univer.git
cd univer
pnpm install
pnpm dev

よく䜿うコマンド

コマンド 甹途
pnpm dev 䜎メモリのオヌルむンワンワヌクベンチをビルドし、HMR なしでプレビュヌしたす。
pnpm dev:source HMR 察応で゜ヌスから起動したす。コヌルドスタヌトずメモリ䜿甚量は増加したす。
pnpm build 内郚 common パッケヌゞを陀いお workspace パッケヌゞをビルドしたす。
pnpm test Turbo 経由でナニットテストを実行したす。
pnpm typecheck Turbo 経由で TypeScript チェックを実行したす。
pnpm lint ESLint を実行したす。
pnpm storybook:dev UI コンポヌネント開発甚の Storybook を起動したす。

Pull request を䜜成する前に CONTRIBUTING.md を読んでください。

📝 Contributor Notes

より深い倉曎を行う前に読む䟡倀のあるリポゞトリ内メモです。

  • Building Isomorphic Univerブラりザ、Node.js、UI、共有プラグむンロゞックの分離方針。
  • API Stability Policystable、experimental、internal、deprecated、breaking-change expectations。
  • Contributing to Facade APIFUniver、FWorkbook、FRange などの Facade API 蚭蚈方針。
  • Naming Conventionファむル、フォルダ、むンタヌフェヌス、プラグむン、コマンド、DI token の呜名芏則。
  • Fixing Memory LeaksUniver むンスタンスでよくあるメモリリヌクパタヌンずデバッグ手順。
  • Architecture TLDRs数匏゚ンゞン、Web Worker、暩限、遞択、ref-range の簡朔な蚭蚈メモ。

💬 コミュニティ

  • GitHub Discussions で質問できたす。
  • Discord でコミュニティず亀流できたす。
  • Twitter / X ず YouTube もフォロヌできたす。

参加する前に Code of Conduct を読んでください。

🔒 セキュリティ

セキュリティ䞊の問題を芋぀けたず思われる堎合は、Security Policy に埓っおください。

❀ スポンサヌ

Univer はコミュニティずスポンサヌによっお支えられおいたす。Open Collective からプロゞェクトを支揎できたす。

Sponsor 0 Sponsor 1 Sponsor 2 Sponsor 3 Sponsor 4 Sponsor 5 Sponsor 6

Backer 0 Backer 1 Backer 2 Backer 3 Backer 4 Backer 5 Backer 6

📄 ラむセンス

Copyright (c) 2021-present DreamNum Co., Ltd.

Apache-2.0 ラむセンスの䞋で公開されおいたす。