# [](https://handsontable.com) [**Handsontable**](https://handsontable.com) 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](https://handsontable.com/team.html) team and [many contributors](https://github.com/handsontable/handsontable/graphs/contributors). [](https://travis-ci.org/handsontable/handsontable) [](https://github.com/handsontable/handsontable/graphs/contributors) [](https://github.com/handsontable/handsontable/blob/master/LICENSE) ## 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 ## Installation There are many ways to install Handsontable but we suggest using one of available package managers. ``` npm install handsontable --save ``` or ``` bower install handsontable --save ``` ### Alternative installation - [Download ZIP](https://github.com/handsontable/handsontable/archive/master.zip) - [Download from nuget](https://www.nuget.org/packages/Handsontable/) ### AMD support If you use a modular script loader then you can require Handsontable just like any other module: ```javascript 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: ```javascript var handsontable = require('handsontable'); ``` To bundle Handsontable with [Browserify](http://browserify.org) you must specify the module names of all required modules: `browserify main.js -o bundle.js -r moment -r pikaday -r zeroclipboard -r numbro` ## Basic usage Assuming you have already installed Handsontable, add an empty `