1 | <div align="center">
|
2 |
|
3 | <a href="https://handsontable.com" rel="nofollow"><img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/handsontable-logo-blue.svg" alt="Handsontable" width="300"></a>
|
4 |
|
5 | Handsontable is a JavaScript component that combines data grid features with spreadsheet-like UX. <br>
|
6 | It provides data binding, data validation, filtering, sorting, and CRUD operations.
|
7 |
|
8 | [![npm](https://img.shields.io/npm/dt/handsontable.svg)](https://npmjs.com/package/handsontable)
|
9 | [![npm](https://img.shields.io/npm/dm/handsontable.svg)](https://npmjs.com/package/handsontable)
|
10 | [![CI status](https://github.com/handsontable/handsontable/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/handsontable/handsontable/actions/workflows/test.yml?query=branch%3Amaster)
|
11 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fhandsontable%2Fhandsontable.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fhandsontable%2Fhandsontable?ref=badge_shield)
|
12 | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=handsontable_handsontable&metric=alert_status)](https://sonarcloud.io/dashboard?id=handsontable_handsontable)
|
13 |
|
14 | ---
|
15 | #### Get Started with Handsontable
|
16 |
|
17 | <table border="0">
|
18 | <tr>
|
19 | <td>
|
20 | <img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/icons/react-icon.svg" width="14" height="14">
|
21 | <a href="https://github.com/handsontable/handsontable/tree/master/wrappers/react"> <strong>React</strong></a>
|
22 | </td>
|
23 | <td>
|
24 | <img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/icons/angular-icon.svg" width="14" height="14">
|
25 | <a href="https://github.com/handsontable/handsontable/tree/master/wrappers/angular"> <strong>Angular</strong></a>
|
26 | </td>
|
27 | <td>
|
28 | <img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/icons/vue-icon.svg" width="14" height="14">
|
29 | <a href="https://github.com/handsontable/handsontable/tree/master/wrappers/vue"> <strong>Vue</strong></a>
|
30 | </td>
|
31 | <td>
|
32 | <img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/icons/vue-icon.svg" width="14" height="14">
|
33 | <a href="https://github.com/handsontable/handsontable/tree/master/wrappers/vue3"> <strong>Vue 3</strong></a>
|
34 | </td>
|
35 | <td>
|
36 | <img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/icons/javascript-icon.svg" width="14" height="14">
|
37 | <a href="#installation"> <strong>JavaScript</strong></a>
|
38 | </td>
|
39 | </tr>
|
40 | </table>
|
41 |
|
42 | ---
|
43 |
|
44 | <a href="https://handsontable.com/demo"><img src="https://raw.githubusercontent.com/handsontable/handsontable/develop/resources/handsontable-github-preview.png" alt="Handsontable data grid" width="805"/></a>
|
45 |
|
46 | </div>
|
47 |
|
48 | ## Features
|
49 |
|
50 | The most popular features of Handsontable:
|
51 |
|
52 | ✓ Multiple column sorting <br>
|
53 | ✓ Non-contiguous selection <br>
|
54 | ✓ Filtering data <br>
|
55 | ✓ Export to file <br>
|
56 | ✓ Validating data <br>
|
57 | ✓ Conditional formatting <br>
|
58 | ✓ Merging cells <br>
|
59 | ✓ Freezing rows/columns <br>
|
60 | ✓ Moving rows/columns <br>
|
61 | ✓ Resizing rows/columns <br>
|
62 | ✓ Hiding rows/columns <br>
|
63 | ✓ Context menu <br>
|
64 | ✓ Comments <br>
|
65 |
|
66 | ## Documentation
|
67 |
|
68 | - [Developer guides](https://handsontable.com/docs)
|
69 | - [API Reference](https://handsontable.com/docs/api/core/)
|
70 | - [Changelog](https://handsontable.com/docs/release-notes/)
|
71 | - [Demo](https://handsontable.com/demo)
|
72 |
|
73 | <div id="installation"></div>
|
74 |
|
75 | ## Get Started
|
76 | ### Install with npm
|
77 |
|
78 | Run the following command in your terminal
|
79 | ```
|
80 | npm install handsontable
|
81 | ```
|
82 |
|
83 | You can also use [Yarn](https://yarnpkg.com/package/handsontable), [NuGet](https://www.nuget.org/packages/Handsontable) or load the bundle directly from [jsDelivr](https://jsdelivr.com/package/npm/handsontable).
|
84 |
|
85 | ### Create a placeholder
|
86 |
|
87 | Create an HTML placeholder
|
88 |
|
89 | ```html
|
90 | <div id="example"></div>
|
91 | ```
|
92 |
|
93 | Import Handsontable and its stylesheet
|
94 | ```js
|
95 | import Handsontable from "handsontable";
|
96 | import 'handsontable/dist/handsontable.full.css';
|
97 | ```
|
98 |
|
99 | ### Initialize the grid
|
100 |
|
101 | Now turn your placeholder into a data grid with sample data.
|
102 | ```js
|
103 | const data = [
|
104 | ['', 'Tesla', 'Volvo', 'Toyota', 'Ford'],
|
105 | ['2019', 10, 11, 12, 13],
|
106 | ['2020', 20, 11, 14, 13],
|
107 | ['2021', 30, 15, 12, 13]
|
108 | ];
|
109 |
|
110 | const container = document.getElementById('example');
|
111 | const hot = new Handsontable(container, {
|
112 | data: data,
|
113 | rowHeaders: true,
|
114 | colHeaders: true
|
115 | });
|
116 | ```
|
117 |
|
118 | ## Support
|
119 |
|
120 | We provide support for developers working with commercial version via [contact form](https://handsontable.com/contact?category=technical_support)</a> or at support@handsontable.com.
|
121 |
|
122 | If you use a non-commercial version then please ask your tagged question on [StackOverflow](https://stackoverflow.com/questions/tagged/handsontable).
|
123 |
|
124 | ## License
|
125 |
|
126 | Handsontable is a commercial software with two licenses available:
|
127 |
|
128 | - Free for non-commercial purposes such as teaching, academic research, and evaluation. [Read it here](https://github.com/handsontable/handsontable/blob/master/handsontable-non-commercial-license.pdf).
|
129 | - Commercial license with support and maintenance included. See [pricing plans](https://handsontable.com/pricing).
|
130 |
|
131 | ## License key
|
132 |
|
133 | If you use Handsontable in a project that supports your commercial activity, then you must purchase the license key at [handsontable.com](https://handsontable.com/pricing).
|
134 |
|
135 | If you use the free for non-commercial license of Handsontable, then pass the phrase `'non-commercial-and-evaluation'`, as described in [this documentation](https://handsontable.com/docs/license-key/).
|
136 |
|
137 | <br>
|
138 | <br>
|
139 |
|
140 | Proudly created and maintained by the [Handsontable Team](https://handsontable.com/team).
|