Installation
Install Handsontable through your preferred package manager, or import Handsontable’s assets directly from a CDN.
Overview
To start using Handsontable, follow these steps:
Install Handsontable
Get Handsontable’s files in your preferred way.
Using a package manager
To install Handsontable locally using a package manager, run one of these commands:
npm install handsontableyarn add handsontablepnpm add handsontableInstall Skills for Claude Code
Skills for Claude Code give Claude AI deep knowledge of Handsontable’s APIs, so it can build, configure, and debug your grid accurately. We recommend installing them alongside Handsontable.
In Claude Code, run:
/plugin marketplace add handsontable/handsontable-skills/plugin install handsontable-skills@handsontable-skillsFor more details, see Skills for Claude Code.
Using a CDN
To get Handsontable’s files from a CDN, use the following locations:
Import Handsontable’s JavaScript
Import Handsontable’s JavaScript into your application.
Using CommonJS or a package manager
If you’re using Handsontable as a CommonJS package, or as an ECMAScript module (using a package manager), import the full distribution of Handsontable as a JavaScript file.
Use your bundler’s preferred method of importing files. For example:
import Handsontable from 'handsontable';Using the script tag
If you’re using Handsontable as a traditional UMD package, import the full distribution of Handsontable as a minified JavaScript file.
Use the script tag. For example, if you’re loading Handsontable’s JavaScript from a CDN:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.js"></script>Create a container
In your HTML, add an empty div, which serves as a container for your Handsontable instance.
<div id="example1"></div>Initialize your grid
Now turn your container into a data grid with sample data.
const container = document.querySelector('#example1');
const hot = new Handsontable(container, { data: [ ['', 'Tesla', 'Volvo', 'Toyota', 'Ford'], ['2019', 10, 11, 12, 13], ['2020', 20, 11, 14, 13], ['2021', 30, 15, 12, 13] ], rowHeaders: true, colHeaders: true, height: 'auto', autoWrapRow: true, autoWrapCol: true, licenseKey: 'non-commercial-and-evaluation' // for non-commercial use only});Preview the result
import Handsontable from 'handsontable/base';import { registerAllModules } from 'handsontable/registry';
// Register all Handsontable's modules.registerAllModules();
const container = document.querySelector('#example1');const data = [ ['', 'Tesla', 'Volvo', 'Toyota', 'Ford'], ['2019', 10, 11, 12, 13], ['2020', 20, 11, 14, 13], ['2021', 30, 15, 12, 13],];
new Handsontable(container, { data, rowHeaders: true, colHeaders: true, height: 'auto', autoWrapRow: true, autoWrapCol: true, licenseKey: 'non-commercial-and-evaluation', // for non-commercial use only});import Handsontable from 'handsontable/base';import { registerAllModules } from 'handsontable/registry';
// Register all Handsontable's modules.registerAllModules();
const container = document.querySelector<HTMLDivElement>('#example1')!;
const data: Handsontable.CellValue[][] = [ ['', 'Tesla', 'Volvo', 'Toyota', 'Ford'], ['2019', 10, 11, 12, 13], ['2020', 20, 11, 14, 13], ['2021', 30, 15, 12, 13],];
new Handsontable(container, { data, rowHeaders: true, colHeaders: true, height: 'auto', autoWrapRow: true, autoWrapCol: true, licenseKey: 'non-commercial-and-evaluation', // for non-commercial use only});Result
Handsontable is installed and ready to use in your project. Import it and create your first grid instance.
Related articles
Related guides
Configuration options
Hooks