JavaScript
Clone or download

README.md

Handsontable for React


Handsontable for React is the official wrapper for Handsontable, a JavaScript data grid component with a spreadsheet look & feel. It easily integrates with any data source and comes with lots of useful features like data binding, validation, sorting or powerful context menu.

Build status


Table of contents

  1. Installation
  2. Getting Started
  3. Documentation
  4. What to use it for?
  5. Features
  6. Screenshot
  7. Resources
  8. Support
  9. Contributing
  10. Licensing

Installation

Use npm to download the project.

npm install handsontable @handsontable/react

A package scope for Handsontable Pro users:

npm install handsontable-pro @handsontable-pro/react

Getting Started

Assuming that you have installed the wrapper with npm, now you just need to include Handsontable styles into your build system and use <HotTable> just like any other React component.

Handsontable Community Edition:

Styles

@import 'handsontable/dist/handsontable.full.css';

React Component

import React from 'react';
import ReactDOM from 'react-dom';
import {HotTable} from '@handsontable/react';

class HotApp extends React.Component {
  constructor(props) {
    super(props);
    this.data = [
      ["", "Ford", "Volvo", "Toyota", "Honda"],
      ["2016", 10, 11, 12, 13],
      ["2017", 20, 11, 14, 13],
      ["2018", 30, 15, 12, 13]
    ];
  }

  render() {
    return (
      <div id="hot-app">
        <HotTable data={this.data} colHeaders={true} rowHeaders={true} width="600" height="300" stretchH="all" />
      </div>
    );
  }
}

Handsontable Pro:

Styles

@import 'handsontable-pro/dist/handsontable.full.css';

React Component

import React from 'react';
import ReactDOM from 'react-dom';
import {HotTable} from '@handsontable-pro/react';

class HotApp extends React.Component {
  constructor(props) {
    super(props);
    this.data = [
      ["", "Ford", "Volvo", "Toyota", "Honda"],
      ["2016", 10, 11, 12, 13],
      ["2017", 20, 11, 14, 13],
      ["2018", 30, 15, 12, 13]
    ];
  }

  render() {
    return (
      <div id="hot-app">
        <HotTable data={this.data} colHeaders={true} rowHeaders={true} width="600" height="300" stretchH="all" />
      </div>
    );
  }
}

Documentation

Visit docs.handsontable.com to get more Handsontable for React examples and guides.


What to use it for?

The list below gives a rough idea on what you can do with Handsontable, but it shouldn't limit you in any way:

  • Database editing
  • Configuration controlling
  • Data merging
  • Team scheduling
  • Sales reporting
  • Financial analysis

Features

Some of the most popular features include:

  • Sorting data
  • Data validation
  • Conditional formatting
  • Freezing rows/columns
  • Merging cells
  • Defining custom cell types
  • Moving rows/columns
  • Resizing rows/columns
  • Context menu
  • Adding comments to cells
  • Dragging fill handle to populate data
  • Internationalization
  • Non-contiguous selection

Screenshot


Resources


Support

You can report your issues here on GitHub.

An open source version of Handsontable doesn't include technical support. You need to purchase the Handsontable Pro license or contact us directly in order to obtain a technical support from the Handsontable team.


Contributing

If you would like to help us to develop this wrapper for React, please first read the guide for contributors.


Licensing

This wrapper is released under the MIT license.


Copyrights belong to Handsoncode sp. z o.o.