Meet npm Pro: unlimited public & private packages + package-based permissions.Learn more »


0.33.9 • Public • Published

Handsontable is a pure JavaScript/HTML5 spreadsheet component with an Excel-like appearance. It can easily integrate with any data source and comes with a variety of useful features like data binding, validation, sorting or powerful custom context menu. Actively supported by the Handsoncode team team and many contributors.

Build status

What to use it for?

We have seen Handsontable being used in many different, sometimes completely unexpected fields. The list below is just to give you a rough idea on what you can do with Handsontable, but it doesn't limit you in any way.

  • Database editing
  • Configuration controlling
  • Data merging
  • Team scheduling
  • Sales reporting
  • Financial analysis


There are many ways to install Handsontable but we suggest using one of available package managers.

npm install handsontable --save


bower install handsontable --save

Alternative installation

AMD support

If you use a modular script loader then you can require Handsontable just like any other module:

require(['handsontable'], function(Handsontable) {
    var hot = new Handsontable(document.getElementById('example'), {
      data: [[1, 2, 3, 4], [1, 2, 3, 4]]

CommonJS module support

If you use a CommonJS compatible environment you can use the require function to import Handsontable:

var handsontable = require('handsontable');

To bundle Handsontable with Browserify you must specify the module names of all required modules:

browserify main.js -o bundle.js -r moment -r pikaday -r numbro

Basic usage

Assuming you have already installed Handsontable, add an empty <div> element that will be turned into a spreadsheet:

<div id="example"></div>

In the next step, pass a reference to that <div> element and fill it with sample data:

var data = [
  ["", "Ford", "Volvo", "Toyota", "Honda"],
  ["2016", 10, 11, 12, 13],
  ["2017", 20, 11, 14, 13],
  ["2018", 30, 15, 12, 13]
var container = document.getElementById('example');
var hot = new Handsontable(container, {
  data: data,
  rowHeaders: true,
  colHeaders: true




If you would like to help us in writing the code, please take a look into

Copyright and license

Handsontable is released under the MIT license.

Copyrights belong to Handsoncode sp. z o.o.


npm i @quantlab/handsontable

DownloadsWeekly Downloads






Last publish


  • avatar