Spreadsheets
Familiar Excel-like interface. Supports 500+ functions, cross-sheet references, sorting & filtering, freeze panes, and rich text cell editing.
Univer Office SDK brings a unified Office runtime into your product, enabling humans and AI agents to work together with freely composable and embeddable spreadsheets, documents, presentations, Bases, Boards and PDFs.
Spreadsheets, documents, presentations, and more
Familiar Excel-like interface. Supports 500+ functions, cross-sheet references, sorting & filtering, freeze panes, and rich text cell editing.
Word-like rich text editor with document statistics, rich-text links, paragraph styles, tables, lists, headers, footers, and comments.
PowerPoint-like slide editor with editable SmartArt, charts, table design, and consistent Canvas2D rendering across platforms.
Table-driven business apps with field modeling, multiple views, record management, and low-code data workflows.
Infinite canvas for visual collaboration with image backgrounds, containers, shapes, printing, and PNG/JPEG export.
Create and edit PDFs with continuous page scrolling, printing, text, images, tables, lists, and annotations.
A full-stack framework with microkernel + plugin architecture. Get started in minutes.
Install the core Web SDK packages via npm, yarn, or pnpm.
Preset mode for quick integration via preset packages; Plugin mode for fine-grained control by manually registering plugins.
Initialize the Web SDK instance and load the required plugins and locale resources.
Mount to a DOM element, load data, and render the editing interface.
# npm install @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 react react-dom rxjs
import { LocaleType, mergeLocales, Univer, UniverInstanceType } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignEnUSfrom '@univerjs/design/locale/en-US'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
import DocsUIEnUSfrom '@univerjs/docs-ui/locale/en-US'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
import SheetsFormulaUIEnUSfrom '@univerjs/sheets-formula-ui/locale/en-US'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
import SheetsNumfmtUIEnUSfrom '@univerjs/sheets-numfmt-ui/locale/en-US'
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
import SheetsUIEnUSfrom '@univerjs/sheets-ui/locale/en-US'
import SheetsEnUSfrom '@univerjs/sheets/locale/en-US'
import { UniverUIPlugin } from '@univerjs/ui'
import UIEnUSfrom '@univerjs/ui/locale/en-US'
import '@univerjs/engine-formula/facade'
import '@univerjs/ui/facade'
import '@univerjs/docs-ui/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'
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'
const univer = new Univer({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]:mergeLocales([
DesignEnUS,
UIEnUS,
DocsUIEnUS,
SheetsEnUS,
SheetsUIEnUS,
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)
univer.createUnit(UniverInstanceType.UNIVER_SHEET,{})
const univerAPI = FUniver.newAPI(univer)Verified benchmarks for production workloads
Canvas2D rendering engine with 50–60 FPS scrolling up to 6M cells.
500+ built-in functions, custom functions, array formulas, and named ranges.
Multiple built-in themes with dark mode support.
100+ official plugins to easily extend sheets, docs, and slides.
Multi-language and locale support for global users.
Web, Node.js, and mobile support with one codebase.
Real-time collaboration with OT algorithm and conflict resolution.
Import and export common formats including xlsx, csv, tsv, docx, pptx, and pdf.
Print content, generate PDFs, and export charts and other visual content as images.
Docker Compose and Kubernetes support for production.
Track every change with undo, redo, and version restore.
Pivot tables, charts, and conditional formatting for clear insights.
Process documents on the server with native support for AI and automation
Run Web SDK directly in Node.js without a browser.
Exclude UI plugins and focus on data and computation.
Reuse the same codebase in browser and server.
LLMs and agents can directly call the Facade API for automated document read/write and analysis.
import { LocaleType, mergeLocales, Univer, UniverInstanceType } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import SheetsEnUSfrom '@univerjs/sheets/locale/en-US'
import '@univerjs/engine-formula/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'
const univer = new Univer({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]:mergeLocales(
SheetsEnUS,
),
},
})
univer.registerPlugin(UniverRenderEnginePlugin)
univer.registerPlugin(UniverFormulaEnginePlugin)
univer.registerPlugin(UniverDocsPlugin)
univer.registerPlugin(UniverSheetsPlugin)
univer.registerPlugin(UniverSheetsFormulaPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)
univer.createUnit(UniverInstanceType.UNIVER_SHEET,{})Combine real-time collaboration, file conversion, and extensions from Server SDK to add the capabilities your application needs.
Read the Server SDK docsConnect your existing authentication, permissions, and data storage. Deploy and manage on your own terms.
Keep teams on the same page with document synchronization and conflict resolution for multiplayer editing.
Convert between Office files and document data, on its own or alongside collaboration services.
Add history, comments, and Worktree as your collaboration workflow needs them.
Build on a rich ecosystem
Share integration experience, report issues, and join community discussions on GitHub.
Join on GitHubCompose spreadsheets, documents, and more with Univer Office SDK. Build a product where people and AI agents create together.