
x-spreadsheet
A web-based JavaScript spreadsheet you can embed in a page, Excel-style, with no server needed.
- Stars
- 14.6k
- Forks
- 1.7k
- Licence
- MIT
- Language
- JavaScript
- Last update
- 2.2 years ago
- Type
- Library
No commits in over a year — check for forks or alternatives before adopting.
What it is
x-spreadsheet is a JavaScript component that adds an interactive spreadsheet grid to a web page. Developers place it in a page, load data into it, and users can edit cells, format them, and use common spreadsheet features. It is aimed at apps that need an Excel-like editing area inside the browser.
- Embed an editable spreadsheet grid in a web form or dashboard
- Load data into the grid and listen for cell edits to save changes to a database
- Offer multiple sheets, data validation, and printing inside a web app
- Provide a Chinese-language interface using the included zh-cn locale
Great for
- Web developers who want a spreadsheet-style editor inside their own app
- Teams building internal tools that need cell editing, formulas, or data entry in the browser
- Developers who need import and export to xlsx through the linked SheetJS demo
Not ideal for
- People who just want a spreadsheet to use: this is a component for developers, not a standalone app
- Projects needing very large datasets or heavy calculation, since the README says nothing about performance at scale
- Anyone needing active maintenance: the description says the project has migrated to @wolf-table/table, and the last push was in August 2024
How to get it
- 1
Install with a package manager
You'll need: Node.js (version not stated in the README)
Install from npm
npm install x-data-spreadsheet - 2
Run it
- Add a div with an id to your HTML page, such as <div id="x-spreadsheet-demo"></div>
- Import Spreadsheet from x-data-spreadsheet in your JavaScript
- Create the grid with new Spreadsheet("#x-spreadsheet-demo") and call loadData({})
- Open the page in a modern browser to see the editable grid
- 3
Get the most out of it
- Pass an options object to change defaults such as mode (edit or read), row and column sizes, and default styles
- Use the change callback to save edits to your database
- Bind cell-selected and cell-edited events to react to user actions
- Use cellText and cell methods to read and update cells from code
- Import the zh-cn locale file to switch the interface language
Downloads
Strengths
- Simple setup: one npm install or a CDN script tag and a single function call
- Covers many common spreadsheet features such as undo/redo, merged cells, freeze panes, and formulas
- MIT licensed and widely used, with over 14,000 GitHub stars
Trade-offs
- The repository description says the project has moved to @wolf-table/table, so new work may belong there instead
- The README's browser support note is brief and does not list tested versions
- Documentation is short and the README is truncated, so advanced behavior may need the homepage or source
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| x-spreadsheet (this) | 14.6k | Library | intermediate | 2.2 years ago | Web developers who want a spreadsheet-style editor inside their own app |
| Luckysheet | 16.6k | Library | intermediate | 1.2 years ago | Developers maintaining an existing site that already embeds Luckysheet |
| core-js | 25.5k | Library | intermediate | 4 days ago | Web developers who must support older browsers or engines that lack modern JavaScript features |
| PhpSpreadsheet | 14k | Library | intermediate | 4 days ago | PHP developers who need to generate or import spreadsheet files from a web app or script |
| nivo | 14.1k | Library | intermediate | 4 months ago | React developers who need charts in a web app |
| G2 | 12.7k | Library | intermediate | 9 days ago | Front-end developers adding charts to a web dashboard |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.