
In simple English
You can put a working spreadsheet or text document right inside your own web page or software tool. It looks and acts like desktop office software, but you control it with your own code. It runs both in the web browser and on a server using Node.js (a way to run JavaScript on a server outside of a browser). You can pick only the parts you need, such as just a spreadsheet grid or a formula engine. It is free to use under the Apache-2.0 licence, though advanced enterprise features require a paid commercial version.
What it is
Univer is an open-source kit of software libraries written in TypeScript (a programming language that adds strict rules to JavaScript) for building custom office applications. It uses a custom graphics rendering engine built on web canvas technology to keep large grids and documents fast and responsive.
What it is good for
Solo builders and developers who want to add native-feeling spreadsheet editing, document authoring, or automated spreadsheet calculations directly inside a software-as-a-service product without relying on hosted third-party office apps.
- Runs smoothly with large datasets thanks to custom canvas-based rendering.
- Works both in the web browser and headlessly on a server for backend automation.
- Modular plugin design lets you include only the features your app requires.
- Requires significant coding experience with TypeScript and modern web frameworks to set up.
- Advanced features like real-time collaboration and pivot tables require a paid commercial plan.
- Keeping multiple packages aligned on the same version requires careful dependency management.
Building custom grid components from scratch or embedding restrictive third-party office viewers.
Vite for fast front-end bundling and package management.
- handsontable/handsontable22k stars
A popular JavaScript spreadsheet component, though it focuses more on grid editing than a full office suite.
- SheetJS/sheetjs36k stars
A pure JavaScript library for reading and writing spreadsheet file formats without a built-in user interface.
- unocss/unocss19k stars
A styling engine that reads the labels in your markup and generates only the CSS those labels need.
- HypothesisWorks/hypothesis9.1k stars
A Python library that generates test inputs and reduces any failure to the smallest example that still fails.
pnpm add @univerjs/presets @univerjs/preset-sheets-core