# univer **Repository Path**: text-editor/univer ## Basic Information - **Project Name**: univer - **Description**: Univer 是一套开源的企业文档和数据协作解决方案,包括电子表格、文档和幻灯片。 Univer 高度可扩展的设计允许开发人员轻松地定制个性化功能。 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 122 - **Created**: 2024-05-06 - **Last Updated**: 2024-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Univer

GitHub License GitHub Workflow Status codecov CodeFactor Discord

English | 简体中文 | 日本語

> 🚧 This project is still in heavy development. Please note that there are likely to be major API changes. Please submit issues and suggestions to us. ## Introduction Univer is an open-source alternative to Google Sheets, Slides, and Docs. Highlights: - 📈 Univer is designed to support both **spreadsheets** and **documents**. **Slides** will be supported as well in the future. - ⚙️ Univer is easily **embeddable**, allowing seamless integration into your applications. - 🎇 Univer is **powerful**, offering a wide range of features including **formulas**, **conditional formatting**, **data validation**, **filtering**, **collaborative editing**, **printing**, **import & export** and more features on the horizon. - 🔌 Univer is **highly extensible**, thanks to its *plug-in architecture* and *Facade API* that makes it a delight for developers to implement their unique requirements on the top of Univer. - 💄 Univer is **highly customizable**, allowing you to personalize its appearance using *themes*. It also provides support for internationalization (i18n). - ⚡ Univer in **performant**. - ✏️ Univer boasts an efficient *rendering engine* based on canvas, capable of rendering various document types flawlessly. The rendering engines supports advanced typesetting features such as *punctuation squeezing*, *text and image layout* and *scroll buffering*. - 🧮 Univer incorporates a lightning-fast *formula engine* that can operate in Web Workers or even on the server side. - 🌌 Univer is a **highly integrated** system. Documents, spreadsheets and slides can interoperate with each others and even rendered on the same canvas, allowing information and data flow within Univer. ## Examples |

📊 Univer Sheets

| | |:---------------------------------------|--------------------------------| | [Sheets](https://www.univer.ai/examples/sheets/)
Opened: cell styles, formulas. First quarter: conditional formatting, data validation, search and replace. Second quarter (tentative): floating pictures, filtering, sorting, annotations, charts, pivot tables, super tables (tables), shapes | [![](./docs/img/examples-sheets.gif)](https://www.univer.ai/examples/sheets/) | | [Sheets Multi](https://www.univer.ai/examples/sheets-multi/)
Multiple Univer instances can be created on a page to allow interoperability between tables | [![](./docs/img/examples-sheets-multi.gif)](https://www.univer.ai/examples/sheets-multi/) | | [Sheets Uniscript](https://www.univer.ai/examples/sheets-uniscript/)
In Univer Sheets, you can directly use JavaScript syntax to operate the data in the table to achieve automation. | [![](./docs/img/examples-sheets-uniscript.gif)](https://www.univer.ai/examples/sheets-uniscript/) | | [Sheets Big Data](https://www.univer.ai/examples/sheets-big-data/)
Loading 10 million cells of data, completed within 500ms | [![](./docs/img/examples-sheets-big-data.gif)](https://www.univer.ai/examples/sheets-big-data/) | | [Sheets Collaboration (Pro Feature)](https://univer.ai/pro-examples/sheets-collaboration/)
Please open two windows or invite friends to experience Univer Sheets collaboration together | [![](./docs/img/pro-examples-sheets-collaboration.gif)](https://univer.ai/pro-examples/sheets-collaboration/) | | [Sheets Collaboration Playground (Pro Feature)](https://univer.ai/pro-examples/sheets-collaboration-playground/)
Demonstrate the process of collaboration. After A edits the form, how does B process it? Here is an interesting experiment | [![](./docs/img/pro-examples-sheets-collaboration-playground.gif)](https://univer.ai/pro-examples/sheets-collaboration-playground/) | | [Sheets Import/Export (Pro Feature)](https://univer.ai/pro-examples/sheets-exchange/)
Supports xlsx file import and export | [![](./docs/img/pro-examples-sheets-exchange.gif)](https://univer.ai/pro-examples/sheets-exchange/) | | [Sheets Print (Pro Feature)](https://univer.ai/pro-examples/sheets-print/)
Experience the HD printing capabilities of Univer Sheets | [![](./docs/img/pro-examples-sheets-print.gif)](https://univer.ai/pro-examples/sheets-print/) | |

📝 Univer Docs

| | | [Docs](https://www.univer.ai/examples/docs/)
Already open: ordered and unordered lists, paragraph settings, mixed graphics and text, multi-column/single column display in sections (tentative): hyperlinks, comments, tables, charts | [![](./docs/img/examples-docs.gif)](https://www.univer.ai/examples/docs/) | | [Docs Multi](https://www.univer.ai/examples/docs-multi/)
Multiple Univer instances can be created in a page so that doc can interoperate. | [![](./docs/img/examples-docs-multi.gif)](https://www.univer.ai/examples/docs-multi/) | | [Docs Uniscript](https://www.univer.ai/examples/docs-uniscript/)
You can directly use JavaScript syntax to manipulate content in Univer Docs | [![](./docs/img/examples-docs-uniscript.gif)](https://www.univer.ai/examples/docs-uniscript/) | | [Docs Big Data](https://www.univer.ai/examples/docs-big-data/)
1 million word Docs loading demo | [![](./docs/img/examples-docs-big-data.gif)](https://www.univer.ai/examples/docs-big-data/) | | [Docs Collaboration (Pro Feature)](https://univer.ai/pro-examples/docs-collaboration/)
Please open two windows or invite friends to experience Univer Docs collaboration together | [![](./docs/img/pro-examples-docs-collaboration.gif)](https://univer.ai/pro-examples/docs-collaboration/) | | [Docs Collaboration Playground (Pro Feature)](https://univer.ai/pro-examples/docs-collaboration-playground/)
Demonstrate the process of collaboration. After A edits the document, how does B process it? Here is an interesting experiment | [![](./docs/img/pro-examples-docs-collaboration-playground.gif)](https://univer.ai/pro-examples/docs-collaboration-playground/) | |

🎨 Univer Slides

| | | [Slides](https://www.univer.ai/examples/slides/)
A canvas presentation containing graphic text, floating pictures, tables and other elements | [![](./docs/img/examples-slides.gif)](https://www.univer.ai/examples/slides/) | |

🧩 Univer Innovation

| | | [Zen Mode](https://univer.ai/guides/tutorials/zen-editor/#live-demo)
The cell of Sheet is a Doc? | [![](./docs/img/zen-mode.gif)](https://univer.ai/guides/tutorials/zen-editor/#live-demo) | | [Univer (SaaS version)](https://univer.ai/)
With Univer, we enable users to create 3 forms of page as they wish. By merging sheet, doc and slide's capabilities together, Univer empowers individuals and teams to create, organize and streamline workflows effortlessly. | [![](./docs/img/univer-workspace-drag-chart.gif)](https://youtu.be/kpV0MvQuFZA) | ## Usage We recommend to import Univer as a npm package. Please checkout the [Quick Start](https://univer.ai/guides/quick-start/) section on the documentation website. We also have an [online playground](https://univer.ai/playground/) which can help you preview Univer without setting up the development environment. Univer bases on a plugin architecture. You can install the following packages to enhance the functionality of Univer. ### Packages | Name | Description | Version | | :-------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [core](./packages/core) | Implements plugin system and architecture of Univer. It also provides basic services and models of different types of documents. | [![npm version](https://img.shields.io/npm/v/@univerjs/core)](https://npmjs.org/package/@univerjs/core) | | [data-validation](./packages/data-validation) | Implements data validation features in Univer. | [![npm version](https://img.shields.io/npm/v/@univerjs/data-validation)](https://npmjs.org/package/@univerjs/data-validation) | | [design](./packages/design) | Implements the design system on Univer. It provides CSS and a component kit based on React. | [![npm version](https://img.shields.io/npm/v/@univerjs/design)](https://npmjs.org/package/@univerjs/design) | | [docs](./packages/docs) | Implements basic logics of rich text editing features. It also facilitates text editing in other types of documents. | [![npm version](https://img.shields.io/npm/v/@univerjs/docs)](https://npmjs.org/package/@univerjs/docs) | | [docs-ui](./packages/docs-ui) | Provides user interface of Univer Documents | [![npm version](https://img.shields.io/npm/v/@univerjs/docs-ui)](https://npmjs.org/package/@univerjs/docs-ui) | | [engine-formula](./packages/engine-formula) | It implements a rendering engine based on Canvas and is extensible for | [![npm version](https://img.shields.io/npm/v/@univerjs/engine-formula)](https://npmjs.org/package/@univerjs/engine-formula) | | [engine-numfmt](./packages/engine-numfmt) | It implements a number format engine. | [![npm version](https://img.shields.io/npm/v/@univerjs/engine-numfmt)](https://npmjs.org/package/@univerjs/engine-numfmt) | | [engine-render](./packages/engine-render) | It implements a rendering engine based on canvas context2d. | [![npm version](https://img.shields.io/npm/v/@univerjs/engine-render)](https://npmjs.org/package/@univerjs/engine-render) | | [facade](./packages/facade) | It serves as an API layer to make it easier to use Univer | [![npm version](https://img.shields.io/npm/v/@univerjs/facade)](https://npmjs.org/package/@univerjs/facade) | | [find-replace](./packages/find-replace) | It implements find and replace features in Univer. | [![npm version](https://img.shields.io/npm/v/@univerjs/find-replace)](https://npmjs.org/package/@univerjs/find-replace) | | [network](./packages/network) | It implements network services based on WebSocket and HTTP. | [![npm version](https://img.shields.io/npm/v/@univerjs/network)](https://npmjs.org/package/@univerjs/network) | | [rpc](./packages/rpc) | It implements a RPC mechanism and methods to sync data between different replicas of Univer documents. | [![npm version](https://img.shields.io/npm/v/@univerjs/rpc)](https://npmjs.org/package/@univerjs/rpc) | | [sheets](./packages/sheets) | Basic logics of spreadsheet features. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets)](https://npmjs.org/package/@univerjs/sheets) | | [sheets-conditional-formatting](./packages/sheets-conditional-formatting) | It implements conditional formatting in Univer Spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-conditional-formatting)](https://npmjs.org/package/@univerjs/sheets-conditional-formatting) | | [sheets-conditional-formatting-ui](./packages/sheets-conditional-formatting-ui) | It implements conditional formatting in Univer Spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-conditional-formatting-ui)](https://npmjs.org/package/@univerjs/sheets-conditional-formatting-ui) | | [sheets-data-validation](./packages/data-validation) | It implements data validation in Univer Spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-data-validation)](https://npmjs.org/package/@univerjs/sheets-data-validation) | | [sheets-find-replace](./packages/sheets-find-replace) | It implements find and replace features in Univer Spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-find-replace)](https://npmjs.org/package/@univerjs/sheets-find-replace) | | [sheets-formula](./packages/sheets-formula) | It implements formula in spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-formula)](https://npmjs.org/package/@univerjs/sheets-formula) | | [sheets-numfmt](./packages/sheets-numfmt) | It implements number format in spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-numfmt)](https://npmjs.org/package/@univerjs/sheets-numfmt) | | [sheets-zen-editor](./packages/sheets-zen-editor) | It implements Zen editing mode in spreadsheets. | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-zen-editor)](https://npmjs.org/package/@univerjs/sheets-zen-editor) | | [sheets-ui](./packages/sheets-ui) | Provides user interface of Univer Spreadsheets | [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-ui)](https://npmjs.org/package/@univerjs/sheets-ui) | | [ui](./packages/ui) | Implements basic user interactions with Univer and workbench layout based on React. | [![npm version](https://img.shields.io/npm/v/@univerjs/ui)](https://npmjs.org/package/@univerjs/ui) | | [uniscript](./packages/uniscript) (experimental) | Implements a DSL based on Typescript that empowers users to accomplish more sophisticated tasks | [![npm version](https://img.shields.io/npm/v/@univerjs/uniscript)](https://npmjs.org/package/@univerjs/uniscript) | ## Contribution We appreciate any kinds of contributing. You can submit [issues or feature requests](https://github.com/dream-num/univer/issues) to us. Please read our [contributing guide](./CONTRIBUTING.md) first. If you would like to contribute code to Univer, please refer to the contributing guide as well. It would guide you through the process of setting up the development environment and submitting a pull request. ## Sponsors The growth and development of the Univer project rely on the support of its backers and sponsors. If you are interested in supporting our project, we kindly invite you to consider becoming a sponsor. You can sponsor us through [Open Collective](https://opencollective.com/univer). Thanks to our sponsors, just part of them are listed here because of the space limit, ranking is no particular order: ## Stargazers [![Stargazers repo roster for @dream-num/univer](https://bytecrank.com/nastyox/reporoster/php/stargazersSVG.php?user=dream-num&repo=univer)](https://github.com/dream-num/univer/stargazers) ## Links - [Documentation](https://univer.ai/guides/introduction/) - [Online Playground](https://univer.ai/playground/) - [Official Website](https://univer.ai) ### Community - [Discord community](https://discord.gg/z3NKNT6D2f) ## License Univer is distributed under the terms of the Apache-2.0 license. --- Copyright © 2019-2024 Shanghai DreamNum Technology Co., Ltd. All rights reserved