Skip to content

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
npm install handsontable
Yarn
yarn add handsontable
pnpm
pnpm add handsontable

Install 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:

Terminal window
/plugin marketplace add handsontable/handsontable-skills
/plugin install handsontable-skills@handsontable-skills

For 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

JavaScript
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
});
TypeScript
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 guides

Configuration options

Hooks