fitgrid — a fast Flutter data table
A Flutter data grid that measures your content instead of making you guess column widths, and paints cells instead of building a widget for each one. It scrolls a million rows as smoothly as a hundred.

Install
flutter pub add fitgrid_table
FitGrid<Employee>(
rows: employees,
columns: [
FitGridColumn(id: 'name', label: 'Name', value: (e) => e.name, sortable: true),
FitGridColumn(id: 'role', label: 'Role', value: (e) => e.role),
FitGridColumn(id: 'salary', label: 'Salary', value: (e) => '\$${e.salary}',
alignment: FitGridAlignment.end),
],
)
No width arithmetic: every column measures its content.
Why it is fast
| Rows | First frame | Median scroll frame | Rows laid out |
|---|---|---|---|
| 1,000 | 21.0 ms | 5.1 ms | 20 |
| 100,000 | 28.7 ms | 3.3 ms | 20 |
| 1,000,000 | 41.6 ms | 2.9 ms | 20 |
A block of cells is one render object with cached text painters, so the work tracks the viewport, never the dataset. Measured by the benchmarks in the repository.
Everything a data grid needs
- Content-measured column widths and row heights
- Multi-column sort
- Free-text search with highlighting
- Typed filters with a UI: text, number, date, checklists
- A column menu and a column chooser
- Frozen columns at either edge
- Row selection, checkbox column, full keyboard navigation
- Inline editing with validation
- Cell ranges: copy, paste, fill handle, undo and redo
- Grouping with sticky headers, tree rows
- Detail rows with any widget, nested grids included
- Header bands over column groups
- Row and column drag-to-reorder
- Pagination with your own pager
- Infinite scroll with skeleton rows
- Server-backed rows with a bounded cache
- Data bars, progress tracks and sparklines in cells
- Pivot tables
- CSV, TSV and Excel (xlsx) export — no dependencies
- Saved and restored layouts
- A real accessibility tree, right-to-left, light and dark
- Themed from your Material colour scheme, or fully custom
Screenshots





Learn more
- The full guide — every feature, theming in depth, the API reference.
- API documentation
- Choosing a Flutter data table — how fitgrid compares with DataTable, data_table_2, PlutoGrid and Syncfusion.
- llms.txt — a summary for AI assistants.