Support Millions of cells and thousands of columns easy and efficiently for fast data rendering. Easy to use.
Demo and API • Key Features • How To Use • Installation • Docs • License
High Performance: Handles millions of cells in the viewport with a powerful core built by default.
Accessibility: Follows WAI-ARIA best practices.
Lightweight: Minimal initial bundle size . Can be imported with polyfills or as a module for modern browsers.
Intelligent Virtual DOM: Smart row recombination to minimize redraws.
Virtual Scroll: Handles large datasets with infinite scroll.
Drag and Drop: Drag and drop in rows and columns.
Sorting: Multiple options, customizable per column, with advanced event handling.
Export: Export data to file.
Custom Sizes: Define custom sizes for columns and rows. Automatic sizing based on content.
Column Resizing: Adjust column widths.
Auto Size Columns: Intelligent column width adjustment that automatically adapts to content, ensuring optimal readability and layout efficiency.
Pinned/Sticky/Freezed Elements:
Grouping:
Column Types: More details
Range Operations:
Extensibility: Modern VNode features and tsx support for easy extension.
Trimmed Rows: Hide rows on demand.
Plugin System: Create custom plugins or extend existing ones easily.
Formula Support: Evaluate formulas in cell data with Excel-like syntax, including basic arithmetic, statistical functions, and cell references.
Pivot Table: Transform and analyze data dynamically with drag-and-drop field arrangement, aggregation functions, and interactive filtering capabilities.
Master Detail/Subtables/Forms: Expand rows to reveal child data.
Cell/Column/Row Span/Merge: Merge cells to form groups.
Auto Merge: Automatically merges cells with identical values in a column.
Form editig: Edit forms directly within the grid, featuring all necessary fields, including custom options and markdown support for a fast and enhanced data entry experience.
Customizations:
Cell properties (define custom properties for rendered cells).
Nested grids: Build a grid inside a grid, showcasing advanced editing options and user interactions for a more dynamic data presentation.
Context Menu: Build context menus for any grid element - from cells to headers. Cut, copy, paste, add rows, modify columns, and more. Fully customizable with your own actions and behaviors.
Cell template (create your own cell views).
Cell editor (use predefined or apply your own custom editors and cell types).
Rich API & Additional Improvements: Explore hundreds of other small customizations and improvements in RevoGrid.
I am RevoGrid, your solution for efficiently representing large datasets
in an "Excel-like" data table or as a list. Render native components inside each cell!
The library published as a scoped NPM package in the NPMJS Revolist account. Check for more info on our demo side.
With NPM:
npm i @revolist/revogrid --save;
With Yarn:
yarn add @revolist/revogrid;
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
In <revo-grid />
we have developed a sophisticated Continuous Delivery (CD) system powered by GitHub Actions. This advanced system automatically builds and delivers grid versions across multiple frameworks, including React, Angular, Svelte, Vue 2, and Vue 3, with full type support. This ensures continuous version delivery, providing the latest grid enhancements and upgrades across all supported frameworks ✨. In the future (version 5), we are planning to switch to monorepo based development.
RevoGrid functions as a web component. Simply place the component on your page and access its properties as you would with any other HTML element. It also offers multiple ways to integrate our grid into your project:
// Select the RevoGrid element from the DOM
const grid = document.querySelector('revo-grid');
// Define the columns for the grid
grid.columns = [{ prop: 'name', name: 'First Column' }, { prop: 'details' }];
// Define the data source for the grid
grid.source = [{ name: 'New Item', details: 'Item Description' }];
// Select the RevoGrid element from the DOM
const grid = document.querySelector('revo-grid');
// Define the columns for the grid
grid.columns = [
{
prop: 'name',
name: 'Custom cell template',
// Custom cell template
cellTemplate(h, { value }) {
return h(
'div',
{
style: { backgroundColor: 'red' }, // Styling the cell background
class: { 'inner-cell': true }, // Adding a CSS class
},
value || '' // Display the cell content or an empty string if undefined
);
},
},
];
// Define the data source for the grid
grid.source = [{ name: 'New Item' }];
2.0+: Introduced the plugin system, grouping, sorting, and filtering.
3.0+: Breaking changes introduced:
row
-> rgRow
col
-> rgCol
data-cell
-> rgCell
data-header-cell
-> rgHeaderCell
afterEdit
is now afteredit
. Check the API for details.4.0+: Breaking changes introduced. See the migration guide.
Redesigned type support:
- Removed deprecated namespaces:
- Before: RevoGrid.ColumnRegular
- Now: ColumnRegular
;
- Improved type import:
- Before: import { RevoGrid } from '@revolist/revogrid/dist/types/interfaces'
- Now: import { ColumnRegular } from '@revolist/revogrid'
.
- Changed viewport type names everywhere. For example, before: rowDefinitions: [{ type: "row", index: 0, size: 145 }]
, after: rowDefinitions: [{ type: "rgRow", index: 0, size: 145 }]
.
afterEdit
-> afteredit
.BeforeRowRenderEvent
. Check all events for details.Major improvements:
additionalData
for templates and editors. Prop
gives access to parent/root app context.What next?
We would like to extend our heartfelt gratitude to our sponsors for their generous support. Their contributions help us maintain and develop RevoGrid.
If you or your company would like to support the ongoing development of RevoGrid, please consider or use a Pro version. Your support will help us continue to improve the project and provide the best possible tool for the community.
Thank you for supporting RevoGrid! 🙏
By getting involved, you'll have the opportunity to enhance your skills, gain valuable experience, and make a significant impact on an innovative project. Your contribution, no matter how big or small, is valuable.
MIT