Search packages, repositories and app categories

pluto_grid cover
Package detailsv8.1.0

pluto_grid

PlutoGrid is a dataGrid that can be controlled by the keyboard on desktop and web. Of course, it works well on Android and IOS. (DataGrid, DataTable, Data Grid, Data Table, Sticky)

AndroidiOSWebmacOSWindowsLinux
30-day downloads
31.9K
Likes
1.1K
Pub points
160

Install package

flutter pub add pluto_grid

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

PlutoGrid is a versatile data grid component for Flutter that supports keyboard navigation on desktop and web platforms while maintaining full functionality on mobile devices. It offers a responsive, customizable table interface ideal for displaying structured data with features like sticky headers, sorting, and filtering. Designed for developers seeking an accessible and interactive data display solution across multiple platforms, PlutoGrid enhances user experience through intuitive controls and smooth performance.

Use cases

  • Displaying large datasets in web applications
  • Creating accessible data tables for desktop users
  • Building admin dashboards with interactive grids
  • Implementing sticky headers in data tables
  • Enabling keyboard navigation in data grids

Key features

  • Keyboard navigation support on desktop and web
  • Sticky headers and columns
  • Cross-platform compatibility (Android, iOS, Web, macOS, Windows, Linux)
  • Customizable cell rendering
  • Built-in sorting and filtering
  • Responsive design for all screen sizes

Suitable for

  • Developers building data-heavy web apps
  • Teams prioritizing accessibility and keyboard interaction
  • UI designers needing flexible table components
  • Applications requiring sticky headers and advanced data handling
  • Projects targeting multiple platforms with consistent UI

Considerations

  • May require additional styling for complex layouts
  • Performance with extremely large datasets needs monitoring
  • Limited documentation compared to mature alternatives
  • Keyboard navigation may need customization for niche use cases
  • Not optimized for very high-frequency data updates

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

PlutoGrid for flutter - v8.1.0

Awesome Flutter codecov License: MIT


PlutoGrid is a DataGrid that can be operated with the keyboard in various situations such as moving cells.
It is developed with priority on the web and desktop.
Improvements such as UI on mobile are being considered.
If you comment on an issue, mobile improvements can be made quickly.


Demo Web

You can try out various functions and usage methods right away.
All features provide example code.


Pub.Dev

Check out how to install from the official distribution site.


Documentation

The documentation has more details.


ChangeLog

Please note the changes when changing the version of PlutoGrid you are using.


Issue

Report any questions or errors.


Packages

PlutoGridExport
This package can export the metadata of PlutoGrid as CSV or PDF.


Screenshots
Change the color of the rows or make the cells look the way you want them.

PlutoGrid Normal


Date type input can be easily selected by pop-up and keyboard.

PlutoGrid Select Popup


The selection type column can be easily selected using a pop-up and keyboard.

PlutoGrid Select Date


Group columns by desired depth.

PlutoGrid Cell renderer


Grid can be expressed in dark mode or a combination of desired colors. Also, freeze the column, move it by dragging, or adjust the size.

PlutoGrid Multi select


Example

Generate the data to be used in the grid.


List<PlutoColumn> columns = [

  /// Text Column definition
  PlutoColumn(
    title: 'text column',
    field: 'text_field',
    type: PlutoColumnType.text(),
  ),

  /// Number Column definition
  PlutoColumn(
    title: 'number column',
    field: 'number_field',
    type: PlutoColumnType.number(),
  ),

  /// Select Column definition
  PlutoColumn(
    title: 'select column',
    field: 'select_field',
    type: PlutoColumnType.select(['item1', 'item2', 'item3']),
  ),

  /// Datetime Column definition
  PlutoColumn(
    title: 'date column',
    field: 'date_field',
    type: PlutoColumnType.date(),
  ),

  /// Time Column definition
  PlutoColumn(
    title: 'time column',
    field: 'time_field',
    type: PlutoColumnType.time(),
  ),
];

List<PlutoRow> rows = [
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value1'),
      'number_field': PlutoCell(value: 2020),
      'select_field': PlutoCell(value: 'item1'),
      'date_field': PlutoCell(value: '2020-08-06'),
      'time_field': PlutoCell(value: '12:30'),
    },
  ),
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value2'),
      'number_field': PlutoCell(value: 2021),
      'select_field': PlutoCell(value: 'item2'),
      'date_field': PlutoCell(value: '2020-08-07'),
      'time_field': PlutoCell(value: '18:45'),
    },
  ),
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value3'),
      'number_field': PlutoCell(value: 2022),
      'select_field': PlutoCell(value: 'item3'),
      'date_field': PlutoCell(value: '2020-08-08'),
      'time_field': PlutoCell(value: '23:59'),
    },
  ),
];

Create a grid with the data created above.

  @override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: const Text('PlutoGrid Demo'),
    ),
    body: Container(
      padding: const EdgeInsets.all(30),
      child: PlutoGrid(
          columns: columns,
          rows: rows,
          onChanged: (PlutoGridOnChangedEvent event) {
            print(event);
          },
          onLoaded: (PlutoGridOnLoadedEvent event) {
            print(event);
          }
      ),
    ),
  );
}

Flutter version compatible
Flutter PlutoGrid
3.38.0 or higher 8.1.0 or higher
3.19.0 or higher 8.0.0 or higher
3.10.0 or higher 7.0.0 or higher
3.7.0 or higher 6.0.0 or higher
3.3.0 or higher 5.0.6 or higher
3.0.0 or higher 3.0.0-0.pre or higher
2.5.0 or higher 2.5.0 or higher

For other versions, contact the issue


Related packages

develop packages that make it easy to develop admin pages or CMS with Flutter.


Donate to this project

Buy me a coffee


Jetbrains provides a free license

IDE license support

Categories

Dependencies

Dependency list 3 items

Source repository

Projects using this package