React Spreadsheet Component
Jspreadsheet is the best React spreadsheet component for building powerful, Excel-like spreadsheets in React applications. Bring the full power of a spreadsheet directly into your React applications. Our high-performance React spreadsheet component is designed for React developers with hooks support, TypeScript definitions, and full compatibility with React's ecosystem. Build spreadsheet interfaces that users already know how to use.
Create a React Spreadsheet in Two Minutes
The fastest way to start is the install wizard. It detects React, installs the wrapper, and configures the CSS imports for you:
npx @jspreadsheet/install
Or install the React wrapper manually:
npm install @jspreadsheet/react
Then render your first spreadsheet component:
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
// Get a free 30-day trial certificate at jspreadsheet.com
jspreadsheet.setLicense('MGQ4ZjM5OGM2YmUzYWNmNmRkMTgwMTI5NWE1YmQzMWUwY2Y3NWE1OGU2MzQ5Nzk5Y2U4YWI5OTBlZWU1MTg3MGM2ZmVhNTMwZTk1YjgxY2ViOGMxMTY4YmM3ZDRkZTQyZTE3ZTJjYTIwNzM2OTljZThlMDZmNmE2NGIxNDViYmMsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpnMk9EUXdNRGt6TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9');
export default function App() {
const spreadsheet = useRef();
const data = [
['Mazda', 2001, 2000, '=B1*C1'],
['Peugeot', 2010, 5000, '=B2*C2'],
['Honda Fit', 2009, 3000, '=B3*C3'],
];
const columns = [
{ title: 'Model', width: '250px' },
{ title: 'Year', width: '100px' },
{ title: 'Price', width: '100px' },
{ title: 'Total', width: '120px' },
];
return (
<Spreadsheet ref={spreadsheet} toolbar={true} tabs={true}>
<Worksheet data={data} columns={columns} />
</Spreadsheet>
);
}
That is a complete Excel-like React spreadsheet: editable cells, live formulas, keyboard navigation, copy and paste from Excel, and an optional toolbar with worksheet tabs. Using Next.js? Render the component inside a client component, since the spreadsheet works with the DOM directly. From here, the React documentation covers events, methods, and hooks in detail, and the getting started guide explains every configuration option.
React Integration
Built to work perfectly with React, Jspreadsheet provides a fully-featured React spreadsheet component with hooks support, TypeScript definitions, and compatibility with popular state management libraries like Redux, Zustand, and Jotai. Our React spreadsheet integrates effortlessly into your existing React applications without architectural compromises or workarounds.
Modern React hooks for managing React spreadsheet state, handling events, and controlling features programmatically: useSpreadsheet for component lifecycle management, useData for reactive data binding, useSelection for tracking user selections, useFormulas for formula management, and useWorksheet for multi-sheet control.
Unmatched Performance & Scalability
Handle massive datasets confidently with our optimized React spreadsheet engine. This React spreadsheet library delivers smooth scrolling and interaction with hundreds of thousands of rows while maintaining React's performance best practices. Virtual rendering, enhanced memory management, and smart caching ensure your React spreadsheet stays responsive regardless of data size. Built to scale from prototype to enterprise without performance degradation.
500+ Excel-Compatible Formulas
Every formula your users know and love, implemented with complete Excel compatibility. From basic arithmetic to advanced statistical functions, financial calculations, and text manipulation – if it works in Excel, it works in your React spreadsheet. Build sophisticated calculations and business rules directly into your React spreadsheet without server-side processing.
Excel-Compatible User Experience
Your users already know how to use spreadsheets. Jspreadsheet provides the exact keyboard shortcuts, mouse interactions, copy/paste behavior, and visual feedback that users expect from Excel and Google Sheets, eliminating training time and adoption friction. This familiar interface, combined with React's component model, creates powerful, intuitive React spreadsheet experiences.
Export to / Import from XLSX
Import and export spreadsheets in .XLS and .XLSX formats with full fidelity: all formulas and calculations, cell formatting and styles, charts and embedded objects, multiple worksheets, named ranges and defined names, and data validation rules. Effortlessly export data, formulas, and styles to XLSX format, ensuring complete compatibility with Excel and other software.
Custom React Component Editors
Build your own cell editors using React components. Create specialized inputs for your domain-specific data types, integrate with external services, or build complex multi-field editors with full access to React's component model, hooks, and ecosystem. Transform static spreadsheet cells into interactive React components with dropdown lists, date pickers, color pickers, file uploads, and more.
Real-Time Collaboration
Multiple users can edit the same spreadsheet simultaneously with conflict resolution algorithms, user presence indicators, live cursor tracking, automatic change synchronization, and offline editing with sync on reconnect. Advanced permission controls include cell-level permissions, sheet protection, user role management, field-level encryption, and audit logging.
What Our Customers Are Saying
Jspreadsheet reduces our customers' development time. Here are some of their experiences.
"At SplitC we struggled sometimes when users wanted to bulk insert/edit things (sometimes over 100k rows) and we needed performance. Jspreadsheet is probably the fastest spreadsheet component you'll find out there, and with a small bundle size. By the way, support is awesome."
"We vetted 10 JavaScript components and we must say that Jspreadsheet comes out as the best."
"The latest version of Jspreadsheet is a powerful data grid tool, providing an excellent front end for our spreadsheet interface. The Jspreadsheet team is helpful and quick to respond."
Best React Spreadsheet Library for Enterprise Applications
Enterprise teams pick Jspreadsheet when the spreadsheet is the product: financial modeling tools, budgeting and planning apps, quoting engines, and internal tools that replace fragile shared workbooks. The component combines a familiar Excel experience with a React-native API, so you keep your state management, your design system, and your deployment workflow.
Every feature on this page, including the formula engine, XLSX import, and real-time collaboration, is included in a single license. Compare editions on the pricing page or explore the documentation to see the full API.
What Developers Build with This React Spreadsheet
Spreadsheets with Excel-compatible formulas
Formulas work out of the box: type them in cells or ship them with your data, as in the quickstart above. Calculations run on the client with the same syntax your users know from Excel, including cross-worksheet references. The formulas documentation covers custom functions, and Formula Pro adds the complete 500+ function set.
Excel file import and export
Let users drop an XLSX file into your React application, edit it, and download the result. Formulas, formatting, merged cells, and multiple worksheets survive the round trip. See import from XLSX and export to XLSX.
Data entry with typed columns
Each column can enforce a type with its own editor: dropdowns, calendars, checkboxes, images, colors, and more.
const columns = [
{ title: 'Product', type: 'text', width: '200px' },
{ title: 'Category', type: 'dropdown', source: ['Hardware', 'Software'], width: '160px' },
{ title: 'Launch date', type: 'calendar', width: '140px' },
];
The full list of editors is in the columns documentation.
Reacting to user changes
Every edit fires an event you can handle as a component prop, which makes it straightforward to sync spreadsheet data with your React state, an API, or a chart library:
<Spreadsheet ref={spreadsheet} onchange={(worksheet, cell, x, y, value) => {
console.log(`Cell (${x}, ${y}) changed to ${value}`);
}}>
<Worksheet data={data} columns={columns} />
</Spreadsheet>
All events are listed in the events documentation.
How Jspreadsheet Compares to Other React Spreadsheet Libraries
| Jspreadsheet | Handsontable | AG Grid | |
|---|---|---|---|
| Excel-like editing experience | Yes | Yes | Partial |
| Formula functions | 500+ | About 400 via HyperFormula | About 100 |
| XLSX import and export | Both directions, full fidelity | Requires third-party libraries | Export only, Enterprise |
| Real-time collaboration | Built in | Not available | Not available |
| Official React wrapper | Yes | Yes | Yes |
| Free version | Jspreadsheet CE, MIT | Non-commercial only | Community edition, without spreadsheet features |
AG Grid is a strong choice for read-heavy analytics grids with server-side row models. Handsontable is a capable spreadsheet component with a different licensing model. Choose Jspreadsheet when your users expect a real spreadsheet: formulas, XLSX round trips, and Excel behavior, at a lower total cost of ownership. See the detailed Handsontable comparison, AG Grid comparison, and pricing.
Frequently Asked Questions
Is there a free React spreadsheet component?
Yes. Jspreadsheet CE is MIT-licensed and free, including for commercial use. The Pro edition on this page adds XLSX import and export, the 500+ function formula engine, real-time collaboration, and more, with a 30-day free trial and no credit card required.
Does Jspreadsheet work with modern React and TypeScript?
Yes. The wrapper supports hooks and function components, ships TypeScript definitions, and works in strict mode. In Next.js, render the spreadsheet inside a client component since it interacts with the DOM directly.
Can users open and save Excel files?
Yes. XLSX, XLS, and CSV import and export are built in. Formulas, cell formatting, merged cells, and multiple worksheets are preserved in both directions.
How many rows can a React spreadsheet handle?
Hundreds of thousands of rows. Virtual rendering only draws visible cells, so scrolling and editing stay smooth as data grows.
What is the difference between a React spreadsheet and a React data grid?
A spreadsheet gives users free-form editing with formulas and Excel behavior. A data grid presents structured records with typed columns and validation. Jspreadsheet does both: see the React data grid page for the data-centric view, or the React table page for lightweight editable tables.
More resources
React documentation · Getting started · Examples · React data grid · React table · Vue spreadsheet · Angular spreadsheet
Start Your Free Trial Today
Ready to get started? Get your Jspreadsheet free 30-day trial today and bring Excel-quality spreadsheet experiences to your React spreadsheet applications. Full access to all features. No credit card required.