Angular Table Component

Jspreadsheet is the best Angular table component for building powerful, Excel-like data tables in Angular applications. Bring the power of a spreadsheet-based table into your Angular applications. Our high-performance Angular table component is designed for Angular developers with TypeScript support, RxJS integration, and full compatibility with Angular's ecosystem. 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 Angular Table in Two Minutes

The fastest way to start is the install wizard. It detects Angular and sets up everything:

npx @jspreadsheet/install

Or install manually:

npm install jspreadsheet

Then create an editable table with pagination:

import { Component, ViewChild, ElementRef, AfterViewInit } from "@angular/core";
import jspreadsheet from "jspreadsheet";

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

@Component({
    standalone: true,
    selector: "app-root",
    template: `<div #spreadsheet></div>`
})
export class AppComponent implements AfterViewInit {
    @ViewChild("spreadsheet") spreadsheet: ElementRef;
    worksheets: jspreadsheet.worksheetInstance[];

    ngAfterViewInit() {
        this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
            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,
            }]
        });
    }
}

Add the stylesheets to your angular.json:

"styles": [
    "jsuites/dist/jsuites.css",
    "jspreadsheet/dist/jspreadsheet.css"
]

Unlike template-driven table components, nothing else is required: inline editing, keyboard navigation, copy and paste, sorting, and pagination all work out of the box. The Angular documentation has working StackBlitz examples, and the getting started guide explains every option.

Angular Integration

Built to work perfectly with Angular, Jspreadsheet provides a fully-featured Angular table component with complete TypeScript support, RxJS observables, and compatibility with popular state management libraries like NgRx and Akita. Our Angular table integrates effortlessly into your existing Angular applications without architectural compromises or workarounds.

Modern Angular services and directives for managing Angular table state, handling events, and controlling features programmatically: Dependency injection for component lifecycle management, reactive forms for data binding, RxJS observables for event streams, and Angular Material integration for consistent theming.



Unmatched Performance & Scalability

Handle massive datasets confidently with our optimized Angular table engine. This Angular table library delivers smooth scrolling and interaction with hundreds of thousands of rows while maintaining Angular's change detection performance. Virtual rendering, enhanced memory management, and smart caching ensure your Angular 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 Angular table. Build sophisticated calculations and business rules directly into your Angular 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 Angular's robust framework, creates powerful, intuitive Angular 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 Angular Component Editors

Build your own cell editors using Angular components. Create specialized inputs for your domain-specific data types, integrate with external services through HttpClient, or build complex multi-field editors with full access to Angular's component model, services, and dependency injection. Transform static table cells into interactive Angular components 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 Angular Table Library for Enterprise Applications

Most Angular table components are read-first: editing means custom cell templates, reactive forms, and a lot of glue code. Jspreadsheet takes the opposite approach. 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 instead of a sprint of custom templates.

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 Angular 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:

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

// Read the full table whenever needed
const rows = this.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 Angular Table Libraries

Jspreadsheet Angular Material table Handsontable
Ships complete editing UI Yes No, template-driven Yes
Inline editing with typed editors Built in Build your own Built in
Copy and paste from Excel Built in Build your own Built in
Formulas 500+ functions Not available About 400 via HyperFormula
XLSX import and export Both directions Not available Requires third-party libraries
Free version Jspreadsheet CE, MIT MIT Non-commercial only

Angular Material tables are excellent for displaying data inside a Material design system. Choose Jspreadsheet when your users need to edit: Excel-style interaction, typed editors, clipboard support, and pagination 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 Angular table component 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 Angular Material tables?

Material tables are read-first: editing requires custom cell templates and forms. Jspreadsheet ships the complete editing UI, including Excel-style navigation, typed column editors, copy and paste, and formulas.

Does the Angular 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 an Angular data grid for large structured datasets with validation. Use an Angular spreadsheet for free-form editing with formulas. All three run on the same Jspreadsheet engine.

More resources

Angular documentation · Getting started · Examples · Angular spreadsheet · Angular data grid · React table · Vue 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 Angular table applications. Full access to all features. No credit card required.