Use it with JavaScript, TypeScript, or frameworks such as
React,
Angular, and
Vue. With its spreadsheet-like editing features, it’s perfect for building data-rich internal apps. It allows users to enter, edit, validate, and process data from various sources. Common use cases include resource planning software (ERP), inventory management systems, digital platforms, and data modeling applications.
Below, you'll find the installation guide for the JavaScript component. If you're using a specific framework, refer to its dedicated wrapper for installation instructions:
Show/Hide code
If your environment does not support imports, you can use the code below to quickly set up and run a data grid with basic configuration options.
Handsontable is a data grid component written in JavaScript, not a spreadsheet. However, it brings in many features typically found in spreadsheet software. We designed it this way because spreadsheet-like patterns are often the most user-friendly when it comes to data entry and management.
Spreadsheet-like features in Handsontable:
Keyboard shortcuts compliant with either Google Sheets or Excel
400 spreadsheet formulas via native integration with HyperFormula
Keyboard navigation across headers that can be disabled, making only cells navigable
TAB navigation across cells that can be disabled
Built-in undo-redo functionality
Powerful clipboard capabilities for copy-paste operations
Ability to scroll the grid within the container (div) or window
Data binding in the form of an array of objects or arrays of arrays
Built-in cell editors like a date picker or dropdown list
At first glance, it might seem that a data table, spreadsheet, and data grid are just different names for the same thing - an interactive table displaying data. In reality, these tools serve different purposes and offer distinct functionalities, designed to meet specific needs. Handsontable sits comfortably in the data grid category while incorporating many of the best aspects of spreadsheet software.
🛟 Support
We're here to help!
If you're using Handsontable with a free, non-commercial license, you can:
Join the conversation on GitHub Discussions to share ideas, suggest features, or discuss changes.
Handsontable is available under two licensing options, allowing you to choose the one that best fits your needs. Each license comes with its own terms and conditions, as outlined below:
① Free license for non-commercial use, and evaluation purposes
This license is available for non-commercial purposes such as teaching, academic research, or evaluation. It allows you to use Handsontable free of charge under the terms specified in the non-commercial license agreement. Learn more here.
② Commercial license
For commercial use, a paid license is required. This license includes support and maintenance to ensure you get the most out of Handsontable. The commercial license can be purchased directly from Handsoncode or through an authorized reseller. See the pricing page for details.
🔑 License Key
For projects covered by the free non-commercial license, simply use the phrase 'non-commercial-and-evaluation' as your license key.
If you're using Handsontable in a project that supports commercial activities, you'll need to purchase a license key at handsontable.com/pricing. You can find more details in our documentation.
Inefficient Regular Expression Complexity in handsontable
Affected Versions
< 10.0.0
Patched Versions
10.0.0
Reason
30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Reason
no binaries found in the repo
Reason
packaging workflow detected
Details
Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docs-production.yml:21
Reason
SAST tool is run on all commits
Details
Info: SAST configuration detected: CodeQL
Info: all commits (30) are checked with a SAST tool
Reason
Found 28/30 approved changesets -- score normalized to 9
Reason
license file detected
Details
Info: project has a license file: LICENSE.txt:0
Warn: project license file does not contain an FSF or OSI license.
Reason
dependency not pinned by hash detected -- score normalized to 9
Details
Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/code-quality.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/handsontable/handsontable/code-quality.yml/develop?enable=pin
Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/code-quality.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/handsontable/handsontable/code-quality.yml/develop?enable=pin
Warn: containerImage not pinned by hash: docs/docker/Dockerfile:2: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:b471bb609adc83f73c2d95148cf1bd683408739a3c09c0afc666ea2af0037aef
Warn: npmCommand not pinned by hash: .github/workflows/docs-visual-tests.yml:46
Warn: npmCommand not pinned by hash: .github/workflows/publish.yml:32
Info: 87 out of 89 GitHub-owned GitHubAction dependencies pinned
Info: 8 out of 8 third-party GitHubAction dependencies pinned
Info: 0 out of 1 containerImage dependencies pinned
detected GitHub workflow tokens with excessive permissions
Details
Info: jobLevel 'packages' permission set to 'read': .github/workflows/code-quality.yml:40
Info: jobLevel 'actions' permission set to 'read': .github/workflows/code-quality.yml:41
Info: jobLevel 'contents' permission set to 'read': .github/workflows/code-quality.yml:42
Warn: no topLevel permission defined: .github/workflows/audit.yml:1
Warn: no topLevel permission defined: .github/workflows/build-all.yml:1
Warn: no topLevel permission defined: .github/workflows/changelog.yml:1
Warn: no topLevel permission defined: .github/workflows/code-quality.yml:1
Warn: no topLevel permission defined: .github/workflows/docs-examples.yml:1
Warn: no topLevel permission defined: .github/workflows/docs-linter.yml:1
Warn: no topLevel permission defined: .github/workflows/docs-production.yml:1
Warn: no topLevel permission defined: .github/workflows/docs-staging.yml:1
Warn: no topLevel permission defined: .github/workflows/docs-visual-tests.yml:1
Warn: no topLevel permission defined: .github/workflows/ghcr-cleanup.yml:1
Warn: no topLevel permission defined: .github/workflows/linter.yml:1
Warn: no topLevel permission defined: .github/workflows/publish.yml:1
Warn: no topLevel permission defined: .github/workflows/test.yml:1
Warn: no topLevel permission defined: .github/workflows/visual-tests-linter.yml:1
Info: no jobLevel write permissions found
Reason
project is not fuzzed
Details
Warn: no fuzzer integrations found
Reason
57 existing vulnerabilities detected
Details
Warn: Project is vulnerable to: GHSA-4w2v-q235-vp99
Warn: Project is vulnerable to: GHSA-cph5-m8f7-6c5x
Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx
Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg
Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275
Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99
Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q
Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c
Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc
Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp
Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97
Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq
Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m
Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j
Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27
Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp
Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h
Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq
Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm
Warn: Project is vulnerable to: GHSA-6vfc-qv3f-vr6c
Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv
Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55
Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5
Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp
Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq
Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr
Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765
Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g
Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr
Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w
Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j
Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6
Warn: Project is vulnerable to: GHSA-6g33-8w2q-4hxv
Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5
Warn: Project is vulnerable to: GHSA-325j-24f4-qv5x
Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq
Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3
Warn: Project is vulnerable to: GHSA-mgfv-m47x-4wqp
Warn: Project is vulnerable to: GHSA-5j4c-8p2g-v4jx
Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx
Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6
Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975
Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6
Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q
Warn: Project is vulnerable to: GHSA-92r3-m2mg-pj97
Warn: Project is vulnerable to: GHSA-c24v-8rfc-w8vw
Warn: Project is vulnerable to: GHSA-8jhw-289h-jh2g
Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986 / GHSA-64vr-g452-qvp3
Warn: Project is vulnerable to: GHSA-9cwx-2883-4wfx
Warn: Project is vulnerable to: GHSA-hf66-r44g-p7j9
Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm
Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7
Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x
Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx
Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j
Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg
Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p
Score
5
/10
Last Scanned on 2025-02-10
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.