Jspreadsheet v8: The JavaScript spreadsheet

Jspreadsheet, a lightweight Vanilla JavaScript plugin, can help you create exceptional web-based interactive tables and spreadsheets. Compatible with most widely-used spreadsheet software. It offers users an unrivalled spreadsheet-like user experience. It also works well with prominent modern frameworks and flexibly utilizes a large collection of events, extensions and configurations to meet different application requirements.

Smart data grid. Great user experience.

Create applications with spreadsheet-like controls. Manage thousands of database records in an instant.

Jspreadsheet is a powerful spreadsheet like application

Impress your clients with a better user experience and a great user experience.

  • Make rich and user-friendly web interfaces and applications
  • Handle complicated data inputs with ease and convenience
  • Common shortcuts to move data from/to any other spreadsheet software
  • Highly flexible and customizable
  • Lightweight and simple to use

Used by great companies around the world

Amazing online spreadsheets

A basic example how to embed a JavaScript spreadsheet on your applications.

Source code

<script src="https://jspreadsheet.com/v8/jspreadsheet.js"></script>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v8/jspreadsheet.css" type="text/css" />

<div id="spreadsheet"></div>

jspreadsheet(document.getElementById('spreadsheet'), {
    tabs: true,
    toolbar: true,
    worksheets: [{
        minDimensions: [8,8],
    license: 'your-license-here'

Main differences between the Pro and Community distributions

If you are interested in more details about the features, visit the version comparison section.

Feature Description
DOM management With a new DOM management engine, the pagination and lazy loading options allow for higher efficiency in table rendering.
Formula parsing The upgraded formula engine ensures that the efficiency and accuracy of calculations are enhanced, even when dealing with chained formulas.
Cross-Worksheet calculations Work with formulas from different and multiple worksheets.
Data persistance It offers complete support for data persistence. Developers can persist not only data, but also the properties of data tables in a remote server. Data tables can thus be easily recreated.

Stronger integration with remote servers enables better management of record IDs and remote data persistence.
Decouple editors It allows the overwriting of column properties for one specific cell. For example, the table can be configured to render a drop down in one specific cell within a text type column.
Filter options It has the column property filterOptions, which helps developers overwrite the behavior of a cell based on the values of another cell. For example, I have two date columns in a table; the second should not have a date that is before the one in the first.
Real-time collaboration Its real-time spreadsheet online sharing capacity gives multiple users the opportunity for effective collaboration.
Custom editor template It offers a lot of new native columns types and provides a new simplified custom type template. Developers can extend and create new custom column types within mere minutes.
Worksheet management The advanced integrated tab management system gives users a higher degree of flexibility in their usage, including the option to create new worksheets inside a spreadsheet.
Add-ons and extensions It supports add-ons and plugins, which allows developers to use third-party extensions or create their own add-ons.
Premium support It offers timely and comprehensive technical support to help developers maximize the potential of Jspreadsheet Pro and fulfil any application requirements.

Javascript spreadsheet examples


A license is required to use this software. Please choose one of our subscription plans.

About Jspreadsheet

Inspired by other spreadsheet software, the Jspreadsheet Pro is an original JavaScript software created to facilitate data input and manipulation in web-based applications. This software has two different distributions, the Community Edition (CE) and the Pro Edition. It is a lightweight alternative to other JavaScript spreadsheet libraries. Therefore, you would be familiar with migrating your data to JSS Spreadsheet.

Jspreadsheet release notes

Jspreadsheet 8.1.12

  • Image type with options (absolute, width, height).
  • Spreadsheet selection with shift improvement
  • Viewport.refresh updates

Jspreadsheet 8.1.9

  • shiftFormula property for columns

Jspreadsheet 8.1.7

  • Better mobile navigation experience. Spreadsheet touch events updates.
  • Formula picker

Jspreadsheet 8.1.0

  • Fixes for filter + add/delete rows combination
  • New property rows[y].results: Boolean to identify records in the search/filter results
  • beforeinit for Plugins
  • Fixes on the programatic set/reset freezeColumns
  • Improve on the CSS of freezeColumns + hidden index column
  • Formulas on footers review

Jspreadsheet 8.0.61

  • New spreadsheet formula picker component
  • getRange method automatic order correction fix
  • updateState to get the current selection

Jspreadsheet 8.0.58

  • loadData to reset or reload the javascript grid data.
  • Better id syncronization when a column is defined as primaryKey.
  • spreadsheet.toolbar as a method.
  • Fixes when data cell === null and viewport is active to avoid error on the console on scroll.

Jspreadsheet 8.0.57

  • Internal automatic datatype identification for the spreadsheet: Json or Array based on column names
  • getRange method to bring the selection as a range format.

Jspreadsheet 8.0.57

  • Internal automatic datatype identification for the spreadsheet: Json or Array based on column names
  • getRange method to bring the selection as a range format.

Jspreadsheet 8.0.56

  • New external javascript data grid formula picker
  • Spreadsheet toolbars resize when open a new worksheet or viewport resize.

Jspreadsheet 8.0.55

  • Types contextmenu updates
  • setData on readonly cells
  • Copy and paste when filter/search is applied fixes

Jspreadsheet 8.0.51

  • setData to adjust to different grid dimensions
  • setRowId server callback to update row ids

Jspreadsheet 8.0.48

  • getRowData returns a JSON or Array based on the initial data type
  • Spreadsheet viewport fullscreen to cover all screen spaces
  • Spreadsheet with empty data is now enabled
  • It is possible to delete the last row
  • MinSpareRows and MinSpareCols on initialization
  • Fullscreen covers all the available screen
  • Spreadsheet formula fixes

Jspreadsheet 8.0.46

  • Editor input CSS z-index update
  • Automatic get the next available name when the spreadsheet worksheet name is not defined
  • Webcomponent support has been included
  • oncopy to support cancelation
  • Get processed values with mask for not loaded cells (editor.get)
  • Grid Onwheel behavior
  • getChain fixes
  • Dataype to define the type of data
  • Scroll automatic adjustment for the last row/column
  • New locked property on cells
  • Spreadsheet basic formula plugin fixes
  • NextJS compatibility changes

Jspreadsheet 8.0.41

  • Fixes on spreadsheet calendar mask
  • Force excel-like formulas on readonly cells on the spreadsheet initialization

Jspreadsheet 8.0.31

  • Spreadsheet viewport improvements
  • Touch events

Jspreadsheet 8.0.26

  • deleteRow rendering updates when using the spreadsheet viewport;
  • Border freeze
  • Changing complex JSON data objects on insertRow;

Jspreadsheet 8.0.15

  • Autocast improvements;
  • Formify integration;

Jspreadsheet 8.0.0

  • Floating editor element, compabible with EMI
  • Viewport loading navigation
  • New formula engine
  • New parent spreadsheet container
  • Shared toolbar
  • New contextmenu arguments
  • New translation options
  • New plugins and editors capabilities

Jexcel 7.11.8

The Jexcel product name has changed to Jspreadsheet.
  • Filter for individual columns
  • Global License handler
  • setExtensions, setDictionary
  • Improvement on the scroll experience for the lazyLoading
  • A new tooltip properties for columns
  • New arguments for the lazyloading events
  • Formula caching adjustments
  • New argument for onbeforepaste (style)
  • New masking integration

Jexcel 7.8.2

The Jexcel product name has changed to Jspreadsheet.
  • Filter for individual columns
  • Update filters programatically
  • Validation property, native and custom rules
  • Disabled internal sequence option for new records

Jexcel 7.7.9

  • Custom divisor for options in the dropdown

Jexcel 7.7.2

  • Toolbar with options
  • Responsive autocomplete column
  • textEditor to force input [input type='text'] for column type='number'

Jexcel 7.7.1

  • New events to customize the search results: onbeforesearch and onsearch.

Jexcel 7.7.0

If you migrate from 7.6.1 to 7.7.0 and are dealing with the DOM elements of the tabs using el.children[0], that is changed to el.tabs.headers.
  • New tabs with navigation.

Jexcel 7.6.1

  • Apply filters programatically: filter(integer columnNumber, Object values)

Jexcel 7.4.2

  • A new spreadsheet event: oncomments(DOMElement el, Object cells)

Jexcel 7.4.0

  • New column methods: getColumnIdByName, getColumn, setColumn
  • executeFormula with optional x, y references.

Jexcel 7.3.5

  • debugFormulas: true

Jexcel 7.3.0

  • InternationalKeyboard initialization property
  • New jexcel_object class for external elements
  • Better searching/filtering integration

Jexcel 7.2.0

  • Automatic scroll during dragging or selection
  • Freeze nested headers
  • Freeze index numbers

Jexcel 7.1.6

  • Wildcard domain certificate licenses
  • Formula caching

Jexcel 7.1.0

  • General formula engine refactoring
  • Cross-worksheet formula updates and fixes
  • Go-to to row method
  • Merge selected cells

Jexcel 7.0.0

We are proud to release the new version of Jexcel. More performance and better spreadsheet felling experience for the user.

  • Cross-worksheet spreadsheet formula support
  • Formula cache
  • Multiple filter and search combination
  • Spreadsheet with lazycolumns
  • New mergeCells controllers
  • Merge cell updates with insert/delete rows and columns
  • Copy and paste with formulas shift updates
  • Optimizations
  • New dragging/resizing controllers for columns and rows
  • New copy/paste behavior, closer to other software behaviors
  • Better record ids management
  • New arrow navigation
  • Calendar and dropdown options

Jexcel 6

It was not released to the public.

Jexcel 5.6.7

  • setProperty to render changes in the column.

Jexcel 5.6.6

  • Copy and paste formulas
  • Formulas fixes on delete/insert rows
  • setConfig to change dimensions
  • setHeight to accept arrays of rows

Jexcel 5.6.1

  • New flag and default: includeHiddenRowsOnCopy: false
  • filterOptions with more obvious behavior

Jexcel 5.6.0

  • Full screen with toolbars and worksheet tabs
  • Worksheet new methods, and initial configuration
  • Dropodwn with extra properties and filterOptions
  • New toolbar with new default options

Jexcel 5.5.0

  • New worksheet events
  • New worksheet actions on contextmenu
  • Security increase on formulas and editors
  • Jsuites v3 integration
  • Toolbars
  • New intersheet relation editor
  • Formula security

Jexcel 5.0.0

  • Calendar filter, to create conditions before open
  • New detached borders and copying indication border
  • New formula and loading engine
  • New faster navegation options
  • Various different native column type implementations
  • New decouple custom column template object
  • New cells property capable to set a type for one specific cell
  • HTML content compabilibiliy
  • Complete data and configuration persistence support
  • Remote tables and table multiple users syncronization (jExcel Cloud)
  • Theme
  • Fixed formulas on footers
  • Formula can return DOM elements
  • Dynamic column type changing

Jexcel 4.0.1

  • Freeze columns
  • Multiple columns resize
  • New smart key navigation
  • New smart merge cell methods
  • Support for large tables, only loads what is necessary when using lazyloading or pagination
  • Faster formula engine
  • New native formula methods
  • Super event: centralized event handler method
  • Easier backend integration

Jexcel 3.6.0

  • Better formula parsing
  • New events
  • New initialization options
  • General fixes

Jexcel 3.2.3

  • getMeta, setMeta methods
  • Npm package with jSuites
  • General fixes

Jexcel 3.0.1

jExcel v3 is a complete rebuilt JavaScript Vanilla version. For that reason, it was not possible to keep complete compatibility with the previous version. If you are upgrading you might need to implement a few updates in your code. If you have questions, you can review the article upgrading from jExcel v2 or Handsontable.

The jExcel v3 brings a lot of great new features:

  • Drag and drop columns
  • Resizable rows
  • Merge columns
  • Search
  • Pagination
  • Lazy loading
  • Full-screen flag
  • Image upload
  • Native color picker
  • Better mobile compatibility
  • Better nested headers compatibility
  • Amazing keyboard navigation support
  • Better hidden column management
  • Great data picker: dropdown, autocomplete, multiple, group options and icons
  • Importing from XSLX (experimental)

Big improvements are included, such as:

  • A completely new formula engine with no external dependencies with much faster results.
  • Absolutely no selectors, means a much faster application
  • New native columns
  • No jQuery is required
  • React, Vue and Angular examples
  • XLXS support using a custom sheetjs (Experimental).

Jexcel 2.1.0

We are glad to bring you the latest jquery plugin version, with the following improvements:

  • Mobile touch fixes
  • Paste fixes & New CSV parser

Jexcel 2.0.0

  • New radio column
  • New dropdown with autocomplete and multiple selection options
  • Header/body separation for a better scroll/column resize behavior and compatibility
  • Better text-wrap including alt+enter excel compatibility
  • New set/get meta information
  • New set/get config parameters
  • New set/get programmatically cell style
  • New set/get cell comments
  • New table custom toolbar
  • New responsive calendar picker

Jexcel 1.5.7

  • Checkbox column type improvements
  • Destroy jquery table updates

Jexcel 1.5.1

  • Spreadsheet data overflow and fixed headers. See an example
  • Navigation improvements

Jexcel 1.5.0

  • Relative insertRow, deleteRow, insertColumn, deleteColumn. See an example
  • Redo, Undo action tracker for insertRow, deleteRow, insertColumn, deleteColumn, moveRow
  • New formula column recursive chain
  • New alternative design option bootstrap-like. See an example
  • updateSettings updates