# What Handsontable does Handsontable is a JavaScript data grid that looks and behaves like a spreadsheet. It's designed for interfaces that need direct cell editing and spreadsheet-like interactions: inventory tables, planning sheets, admin grids, financial models, and other data-heavy screens.
# Core features at a glance
- Spreadsheet-style cell editing and keyboard navigation.
- Column and row operations: sorting, filtering, moving, resizing, hiding, freezing.
- Many cell types: text, numeric, checkbox, date, time, date-time, select/dropdown, autocomplete, MultiSelect, password, and nested grids.
- Custom renderers, editors, validators, and per-cell metadata.
- Nested headers, merged cells, comments, context menus, and dropdown menus.
- Row pagination and virtualized rendering for performance.
- CSV export and XLSX export via ExcelJS.
- Spreadsheet formulas implemented through HyperFormula.
- Hooks for edits, validation, selection, sorting, filtering, rendering, and data changes.
# Platforms and packaging Handsontable runs independently of jQuery. It also provides official wrappers for React, Angular, and Vue. Distribution is available via npm and CDN.
# License and usage
# How to install and load Install with npm: npm install handsontable Import the library and a theme stylesheet in your application bundle:
# Basic usage pattern 1) Create a container element in your page, for example. 2) Instantiate Handsontable with data and options. A minimal example sets data, column headers, row headers, height, context menu, filters, sorting, theme, and licenseKey.
# Server-driven data with DataProvider
# Tracking changes and persistence
# Theming and UI Handsontable ships Main, Horizon, and Classic themes, each with light and dark color schemes. Built-in context menus and dropdown menus help mirror desktop spreadsheet workflows.
# Export and formula support Export options include CSV and XLSX (via ExcelJS). HyperFormula provides spreadsheet formula capabilities inside the grid.
# When to pick Handsontable Choose Handsontable when you need spreadsheet-like editing and behavior inside a web app, require a wide range of cell types and customizability, and may need server-driven row management or formula support. Verify license terms before using it in commercial projects.