Skip to content

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

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="example"></div>

Initialize your grid

Now turn your container into a data grid with sample data.

const container = document.querySelector('#example');
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('#example');
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>('#example')!;
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
});

Related guides

Configuration options

Hooks