explaingit

jspreadsheet/ce

7,168JavaScriptAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

A JavaScript library that embeds a full spreadsheet, like Excel or Google Sheets, directly into any web page. Includes editable cells, formulas, dropdowns, calendars, multiple worksheets, and copy-paste from Excel.

Mindmap

mindmap
  root((Jspreadsheet CE))
    What it does
      Spreadsheet in browser
      Excel-like interface
      Built-in formula engine
    Column types
      Text and numeric
      Dropdown calendar
      Checkbox image
    Features
      Multiple worksheets
      Frozen columns
      Drag-drop reorder
      Excel clipboard paste
    Integrations
      React wrapper
      Vue wrapper
      npm or CDN
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace a plain HTML table in your web app with an interactive spreadsheet where users can edit data, sort columns, and use formulas.

USE CASE 2

Build a data entry form with dropdowns, date pickers, and checkboxes inside a grid without a separate UI library.

USE CASE 3

Import Excel data into a web page and let users edit it in a familiar spreadsheet interface, then read the updated data back in JavaScript.

Tech stack

JavaScriptReactVue

Getting it running

Difficulty · easy Time to first run · 30min
Community edition is open source, a paid Pro version with additional features is sold separately.

In plain English

Jspreadsheet CE is a JavaScript library for embedding a spreadsheet-style data grid directly inside a web page. Instead of building tables with plain HTML or a basic grid library, you get an interface that looks and behaves like a desktop spreadsheet, with editable cells, column resizing, keyboard shortcuts, and copy-paste support that works with clipboard data from Excel. You initialize it by pointing it at a div element on your page and passing in your data and column configuration. Each column can be assigned a type: text, numeric, dropdown, calendar, checkbox, image, or color picker. The library handles rendering, validation, and user input for each type. Formulas work across cells, and the library includes its own formula engine with no external dependencies. Multiple worksheets can exist in a single grid, similar to tabs in a spreadsheet application. Features like search, pagination, column merging, row resizing, drag-and-drop column reordering, and frozen columns are all included. The library also provides events and methods so your application code can respond to changes and push or pull data programmatically. It is available through npm or via CDN script tags, and dedicated wrappers are provided for React and Vue. The library was originally called jExcel before being renamed to Jspreadsheet. The community edition is open source, while a paid Pro version with additional features is sold separately. The README includes a working code example showing a table with different column types, and links to a variety of examples in the documentation covering topics like rich text editing, XLSX import, web components, and jQuery integration.

Copy-paste prompts

Prompt 1
I want to embed a Jspreadsheet grid into my web page with a dropdown column and a date column. Show me the minimal JavaScript setup.
Prompt 2
My Jspreadsheet grid needs to load data from a JSON API on page load and send changes back to the server when a cell is edited. How do I wire up those events?
Prompt 3
I want to add a SUM formula to a Jspreadsheet cell that totals a column automatically. How do I configure that?
Prompt 4
I'm using Jspreadsheet in a React app. Show me how to import the React wrapper and render a basic editable grid.
Prompt 5
How do I freeze the first two columns in Jspreadsheet so they stay visible when the user scrolls horizontally?
Open on GitHub → Explain another repo

← jspreadsheet on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.