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