JavaScript Table Component

Jspreadsheet is the best JavaScript table component for building powerful, Excel-like data tables in JavaScript applications. Bring the power of a spreadsheet-based table into your JavaScript applications. Our high-performance JavaScript table component is designed for developers with zero dependencies, TypeScript definitions, and full compatibility with any JavaScript framework or vanilla JS. Build table interfaces that users already know how to use.


✓ 30-day free trial
✓ No credit card required
Used by the world's leading companies

Build an Editable JavaScript Table in Two Minutes

Install with the wizard, which sets up everything for your project:

npx @jspreadsheet/install

Or install manually:

npm install jspreadsheet

Then create an editable table with pagination, no framework required:

import jspreadsheet from "jspreadsheet";
import "jspreadsheet/dist/jspreadsheet.css";
import "jsuites/dist/jsuites.css";

// Get a free 30-day trial certificate at jspreadsheet.com
jspreadsheet.setLicense('YzkyODFjMzFlZTZkMDJlYmE0NDRlMThmZTJkYWZiOTU2ZTQ5NDE3NjJlNDM2ZmRiY2FhMTljZWEwZTYyNGVhODI2ZjdkOTc5ZWI3Mjk3MTU3YmMxMzViMjU5NTRjNDMzOTZiNDNiMzhkYmJmZDAzODE5MzQ3YmJmYWEzNjJlYjcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpnMk9ETTVOREF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9');

jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [{
        data: [
            ['Ana', 'ana@company.com', 'Active'],
            ['Bruno', 'bruno@company.com', 'Pending'],
            ['Carla', 'carla@company.com', 'Active'],
        ],
        columns: [
            { title: 'Name', width: '180px' },
            { title: 'Email', width: '240px' },
            { title: 'Status', type: 'dropdown', source: ['Active', 'Pending', 'Disabled'], width: '140px' },
        ],
        pagination: 10,
    }]
});

Nothing else is required: inline editing, keyboard navigation, copy and paste, sorting, and pagination all work out of the box. It runs with plain script tags or any bundler, and official wrappers exist for React, Vue, and Angular. The getting started guide explains every option.

Pure JavaScript Integration

Built with vanilla JavaScript, Jspreadsheet provides a fully-featured JavaScript table component with zero dependencies and compatibility with any build system or no build system at all. Our JavaScript table integrates effortlessly into your existing applications without framework conflicts or version compatibility issues. Works with React, Vue, Angular, or any JavaScript framework.

Simple JavaScript API for managing JavaScript table state, handling events, and controlling features programmatically: Direct DOM manipulation for maximum performance, event-driven architecture for reactivity, comprehensive API for all operations, and full TypeScript support for type safety.



Unmatched Performance & Scalability

Handle massive datasets confidently with our optimized JavaScript table engine. This JavaScript table library delivers smooth scrolling and interaction with hundreds of thousands of rows while maintaining optimal browser performance. Virtual rendering, enhanced memory management, and smart caching ensure your JavaScript table 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 JavaScript table. Build sophisticated calculations and business rules directly into your JavaScript table without server-side processing.



Excel-Compatible User Experience

Your users already know how to use tables and 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 pure JavaScript flexibility, creates powerful, intuitive JavaScript table experiences.

Export to / Import from XLSX

Import and export data tables 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 JavaScript Editors

Build your own cell editors using our comprehensive JavaScript API. Create specialized inputs for your domain-specific data types, integrate with external services, or build complex multi-field editors with full access to the DOM and JavaScript ecosystem. Transform static table cells into interactive elements with dropdown lists, date pickers, color pickers, file uploads, and more.

Real-Time Collaboration

Multiple users can edit the same data table 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.

Proven Solution, Backed by Users

In their own words: How teams saved hours and reduce rework.

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."

Lucas Segers, SplitC

"We vetted 10 JavaScript components and we must say that Jspreadsheet comes out as the best."

Lode Cools, Bizz Control

"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."

Dana Stoesz, PharmacyWire

Best JavaScript Table Library for Enterprise Applications

Most JavaScript table libraries are read-first: rendering and sorting are easy, but editing means custom editors and a pile of glue code. Jspreadsheet is editing-first. The editing UI, keyboard behavior, typed column editors, pagination, and search ship with the component, so an editable table is a few lines of configuration.

When requirements grow, you will not need to switch libraries: the same component scales up to a full data grid or an Excel-like spreadsheet with formulas and XLSX export. See the pricing page for editions.

What Developers Build with This JavaScript Table

Editable lists and CRUD tables

User management, task lists, inventory: any list your users need to edit inline. Dropdown, calendar, and checkbox columns validate input at the cell, and the context menu handles row insertion and deletion without extra code.

Tables that report their own state

Read the whole table as an array at any time, or react to individual edits with an event handler:

const worksheets = jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [{ data, columns }],
    onchange: (worksheet, cell, x, y, value) => {
        saveChange(y, x, value);
    },
});

// Read the full table whenever needed
const rows = worksheets[0].getData();

All events are listed in the events documentation.

Excel-friendly workflows

Users can paste ranges straight from Excel or Google Sheets into the table, and export the result to XLSX or CSV when they are done. See export to XLSX.

How Jspreadsheet Compares to Other JavaScript Table Libraries

Jspreadsheet Tabulator Handsontable
Editing-first design Yes Read-first, editing added on Yes
Inline editing with typed editors Built in Basic editors Built in
Copy and paste from Excel Built in Limited Built in
Formulas 500+ functions Not available About 400 via HyperFormula
XLSX import and export Both directions Export via third-party library Requires third-party libraries
Free version Jspreadsheet CE, MIT MIT Non-commercial only

Tabulator is a solid free choice for read-heavy tables with occasional edits. Choose Jspreadsheet when editing is the point: Excel-style interaction, typed editors, clipboard support, and formulas work today, with a path to a full data grid or spreadsheet later. See the Handsontable comparison and pricing.

Frequently Asked Questions

Is there a free JavaScript table library with editing?

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.

How is Jspreadsheet different from Tabulator or DataTables?

Those libraries are read-first tables with editing added on. Jspreadsheet is editing-first: Excel-style navigation, typed column editors, copy and paste from Excel, and formulas all ship in the core.

Does the JavaScript table support pagination and sorting?

Yes. Pagination, sorting, filtering, and search are built in and configurable per worksheet, as shown in the quickstart above.

Can users edit cells directly in the table?

Yes. Every cell is editable inline with Excel-style keyboard navigation. Columns enforce types such as dropdown, calendar, and checkbox, so invalid input never reaches your data.

When do I need a data grid or spreadsheet instead of a table?

Use a table for lightweight editable lists. Use a JavaScript data grid for large structured datasets with validation. Use a JavaScript spreadsheet for free-form editing with formulas. All three run on the same Jspreadsheet engine.

More resources

Getting started · Documentation · Examples · JavaScript spreadsheet · JavaScript data grid · React table · Vue table · Angular table

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 JavaScript table applications. Full access to all features. No credit card required.