Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Handsontable is an Excel-like data grid / spreadsheet for HTML & JavaScript
Failed to load latest commit information.
demo #fb-comments fixes
dist 0.15.1
lib Accept numbers without leading zero. #2529
plugins code review changes (blue background in selection)
src Merge feature/issue-2563 into develop
tasks Added modularization by hot-builder. #2072
test/jasmine Merge feature/issue-2563 into develop
.bowerrc refactor Heatmaps demo to use Chroma.js; move to "Integrations" menu
.editorconfig Added .editorconfig file. See for details.
.gitattributes Added gitattributes to stop git complaining about CR/LF
.gitignore Added documentation into source code. #1972
.jshintignore Add jshint support to Gruntfile and fixed some typo based on jshint spec
.jshintrc Fix throwing exception after copy merged cells by autofill. #2323
.travis.yml fix travis build (use node 0.10) 0.12.0
CNAME Rename CNAME_ to CNAME Update contributing text
Gruntfile.js Improve checkbox editor behavior for #bad-value# state. #2563
LICENSE Update README.MD and LICENCE Merge branch 'release/0.13.1'
bower.json 0.15.1
handsontable.jquery.json 0.15.1
index.html 0.15.0-beta3
package.json 0.15.1
sauce_connect.log 0.12.0
update.json 0.12.0

Handsontable Build Status

Handsontable is a minimalist approach to Excel-like table editor (data grid) for HTML & JavaScript.

Runs in IE 10+, Firefox, Chrome, Safari and Opera.

See the demos at or fork the example on JSFiddle.


First, include all the dependencies. All the files that you need are in the dist\ directory:

<script src="dist/handsontable.full.js"></script>
<link rel="stylesheet" media="screen" href="dist/handsontable.full.css">

Then, create a new Handsontable object, passing a reference to an empty div as a first argument. After that, load some data if you wish:

<div id="hot"></div>
  var data = [
    ["", "Kia", "Nissan", "Toyota", "Honda"],
    ["2008", 10, 11, 12, 13],
    ["2009", 20, 11, 14, 13],
    ["2010", 30, 15, 12, 13]

  var container = document.getElementById('hot');
  var hot = new Handsontable(container,
      data: data,
      minSpareRows: 1,
      colHeaders: true,
      contextMenu: true

API Reference

Check out the new wiki pages: Options, Methods and Events


To see the list of recent changes, see Releases.


Please use the :new: Handsontable Google Group for posting general Questions.

Make sure the question was not answered before in FAQ or GitHub Issues

Reporting bugs and feature requests

Please follow this guidelines when reporting bugs and feature requests:

  1. Use GitHub Issues board to report bugs and feature requests (not our email address)
  2. Please always write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.
  3. If possible, please add a JSFiddle link that shows the problem (start by forking this fiddle). It saves us much time.
  4. If you can't reproduce it on JSFiddle, please add a screenshot that shows the problem. JSFiddle is much more appreciated because it lets us start fixing straight away.

Thanks for understanding!


Please see


You can contact us at


The MIT License (see the LICENSE file for the full text)

Something went wrong with that request. Please try again.