Handsontable Community Edition - JavaScript/HTML5 Data Grid Component with Spreadsheet Look & Feel. Available for React, Vue and Angular.
Clone or download
Failed to load latest commit information.
.config turn z-index to false Jul 4, 2018
.github Issue template class name change (#4983) Mar 30, 2018
dist 6.1.0 Oct 11, 2018
languages 6.1.0 Oct 11, 2018
lib Support for IME (#5102) Jun 4, 2018
src Fixed typo (#5475) Oct 11, 2018
test Fixes uncaught TypeError while selecting invalid cell #5119 #5258 #5128 Oct 8, 2018
.babelrc Fix highlighting cols/rows headers when using non-contiguous selection ( Mar 27, 2018
.bowerrc refactor Heatmaps demo to use Chroma.js; move to "Integrations" menu Jun 12, 2014
.editorconfig Fix: clearing MergedCellsCollection should not throw an exception. #4988 Apr 25, 2018
.eslintignore Added tests for walkontable and removed jscs and jslint in favor of e… Mar 7, 2017
.eslintrc.js Changed: eslint configuration + necessary changes in code. (#5376) Aug 29, 2018
.gitattributes ESLINT - no-restricted-syntax (#5342) Aug 17, 2018
.gitignore Tests for mobile (#4885) Mar 2, 2018
.npmignore Included test/ directory to be published into npm repository (necessa… Sep 13, 2017
.travis.yml Migration to puppeteer Apr 9, 2018
CHANGELOG.md 0.12.0 Nov 27, 2014
CNAME Rename CNAME_ to CNAME May 15, 2013
CODE_OF_CONDUCT.md 0.35.1 Jan 19, 2018
CONTRIBUTING.md Update of documentation related to changes in docs.handsontable.com c… Jun 25, 2018
LICENSE Add better support for npm dependencies and support for injecting LIC… Nov 3, 2015
README.md Update README.md (#5518) Oct 16, 2018
bower.json Migration to Numbro v2 (#5127) Jun 4, 2018
handsontable.d.ts ColumnSorting refactor & changes for MultiColumnSorting (#5411) Sep 26, 2018
handsontable.jquery.json 6.1.0 Oct 11, 2018
hot.config.js 6.1.0 Oct 11, 2018
package-lock.json 6.1.0 Oct 11, 2018
package.json 6.1.0 Oct 11, 2018
update.json 0.12.0 Nov 27, 2014
webpack.config.js Fix unworking testPathPattern argument in tests (#5161) Jun 7, 2018
yarn.lock 6.1.0 Oct 11, 2018


Handsontable Community Edition logo

Handsontable Community Edition (CE) is an open source JavaScript/HTML5 data grid component with spreadsheet look & feel. It easily integrates with any data source and comes with a variety of useful features like data binding, validation, sorting or powerful context menu. It is available for Vue, React, Angular and Polymer.

If you are looking for an extended version, try out Handsontable Pro.

Build status npm npm npm

We are looking for Contributors who would like to help us with translations. Learn more
Most wanted languages: Danish, Korean, Portuguese, Spanish and Swedish.

Table of contents

  1. What to use it for?
  2. Installation
  3. Basic usage
  4. Examples
  5. Features
  6. Screenshot
  7. Resources
  8. Wrappers
  9. Support
  10. Contributing
  11. Community
  12. License

What to use it for?

The list below gives a rough idea on what you can do with Handsontable CE, but it shouldn'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 CE, but we suggest using npm:

npm install handsontable

Alternative ways to install

  • See the download section on how to install Handsontable CE using nuget, bower, yarn and more.

Basic usage

Assuming that you have already installed Handsontable CE, create 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 into the Handsontable CE constructor and fill the instance with sample data:

var data = [
  ["", "Tesla", "Volvo", "Toyota", "Honda"],
  ["2017", 10, 11, 12, 13],
  ["2018", 20, 11, 14, 13],
  ["2019", 30, 15, 12, 13]

var container = document.getElementById('example');
var hot = new Handsontable(container, {
  data: data,
  rowHeaders: true,
  colHeaders: true



Some of the most popular features include:

  • Sorting data
  • Data validation
  • Conditional formatting
  • Freezing rows/columns
  • Merging cells
  • Defining custom cell types
  • Moving rows/columns
  • Resizing rows/columns
  • Context menu
  • Adding comments to cells
  • Dragging fill handle to populate data
  • Internationalization
  • Non-contiguous selection

See a comparison table




Handsontable CE comes with wrappers and directives for most popular frameworks:


Report all the suggestions and problems on GitHub Issues.

An open source version doesn't include a commercial support. You need to purchase Handsontable Pro license or contact us directly in order to obtain a technical support from the Handsoncode team.


If you would like to help us to develop Handsontable, please take a look at this guide for contributing.



Handsontable Community Edition is released under the MIT license. Read license.

Copyrights belong to Handsoncode sp. z o.o.