JavaScript Other
Switch branches/tags
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 5.0.0 Jul 5, 2018
languages 4.0.0 Jun 7, 2018
lib Support for IME (#5102) Jun 4, 2018
src Refactored columnSorting plugin - stage 2 (#5228) Jul 4, 2018
test Update TS for getPlugin method (#5234) Jul 5, 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 Added loggers to Handsontable CE (#4992) Apr 4, 2018
.gitattributes Added gitattributes to stop git complaining about CR/LF Nov 12, 2012
.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 0.12.0 Nov 27, 2014
CNAME Rename CNAME_ to CNAME May 15, 2013 0.35.1 Jan 19, 2018 Update of documentation related to changes in c… Jun 25, 2018
LICENSE Add better support for npm dependencies and support for injecting LIC… Nov 3, 2015 Update of most wanted languages inside README (#5085) May 9, 2018
bower.json Migration to Numbro v2 (#5127) Jun 4, 2018
handsontable.d.ts Update TS for getPlugin method (#5234) Jul 5, 2018
handsontable.jquery.json 5.0.0 Jul 5, 2018
hot.config.js 5.0.0 Jul 5, 2018
package-lock.json 5.0.0 Jul 5, 2018
package.json 5.0.0 Jul 5, 2018
update.json 0.12.0 Nov 27, 2014
webpack.config.js Fix unworking testPathPattern argument in tests (#5161) Jun 7, 2018
yarn.lock 5.0.0 Jul 5, 2018

Handsontable Community Edition logo

Handsontable Community Edition (CE) is an open source JavaScript/HTML5 UI Spreadsheet component for web apps. 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

We are looking for Contributors who would like to help us with translations. Learn more
Most wanted languages: Danish, Italian, 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.