Vue Table Component

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

The fastest way to start is the install wizard. It detects Vue, installs the wrapper, and configures the CSS imports for you:

npx @jspreadsheet/install

Or install the Vue wrapper manually:

npm install @jspreadsheet/vue

Then render an editable table with pagination:

<template>
    <Spreadsheet ref="spreadsheet">
        <Worksheet :data="data" :columns="columns" :pagination="10" />
    </Spreadsheet>
</template>

<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";

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

export default {
    components: { Spreadsheet, Worksheet },
    data() {
        return {
            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' },
            ],
        };
    },
};
</script>

Unlike headless table utilities, nothing else is required: inline editing, keyboard navigation, copy and paste, sorting, and pagination all work out of the box. The Vue documentation covers events and methods, and the getting started guide explains every option.

Vue Integration

Built to work perfectly with Vue.js, Jspreadsheet provides a fully-featured Vue table component with Composition API support, TypeScript definitions, and compatibility with popular state management libraries like Pinia and Vuex. Our Vue table integrates effortlessly into your existing Vue applications without architectural compromises or workarounds.

Modern Vue composables for managing Vue table 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 Vue table engine. This Vue table library delivers smooth scrolling and interaction with hundreds of thousands of rows while maintaining Vue's reactivity performance. Virtual rendering, enhanced memory management, and smart caching ensure your Vue 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 Vue table. Build sophisticated calculations and business rules directly into your Vue 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 Vue's reactive model, creates powerful, intuitive Vue 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 Vue Component Editors

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

Most Vue table libraries are headless or read-only: you get state management and render everything yourself. 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 cell renderers.

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 Vue 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 prop:

<template>
    <Spreadsheet ref="spreadsheet" :onchange="saveChange">
        <Worksheet :data="data" :columns="columns" />
    </Spreadsheet>
</template>

Call getData() on the worksheet to read the full table. 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 Vue Table Libraries

Jspreadsheet Headless table libraries Handsontable
Ships complete editing UI Yes No, build your own 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 Usually MIT Non-commercial only

Headless utilities are excellent when you want full control of markup and are ready to build editors, clipboard handling, and keyboard navigation yourself. Choose Jspreadsheet when you want an editable, Excel-friendly Vue table working 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 Vue 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 headless table libraries?

Headless libraries manage table state and leave every cell, editor, and interaction for you to build. Jspreadsheet ships the complete editing UI, including Excel-style navigation, typed column editors, copy and paste, and formulas.

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

More resources

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