grid_sheet 2.0.3 copy "grid_sheet: ^2.0.3" to clipboard
grid_sheet: ^2.0.3 copied to clipboard

A powerful Flutter DataGrid/DataTable for large datasets, offering Excel-like features and fully customizable cells — ready with minimal setup. See README for full features

Changelog #

2.0.3 #

Bug Fixes #

  • Fixed serial numbers resetting on each server-side pagination page instead of continuing across pages.
  • Fixed numeric input formatters clearing cells when entering decimals or negative values.
  • Fixed createSnapshot()/restoreSnapshot() losing filtered rows, undo baselines, and formula state.
  • Fixed insertRows(), deleteRowsAt(), and updateRowHeights() using incorrect row positions with client-side pagination.
  • Fixed between and notBetween filters failing with negative values.
  • Fixed corrupted pagination state causing duplicate rows after a failed infiniteScroll reload.
  • Fixed incorrect serialization of conditional-format fontWeight values in getConditionalFormattingStyles().
  • Fixed animationConfiguration, conditionalFormatRules, and evaluator not updating after GridSheet rebuilds.
  • Fixed the context menu remaining open after row/column changes, sorting, filtering, or reloads.
  • Fixed GridSheetRow.copyWith() losing the original row height, breaking resetHeight().
  • Fixed findAndReplace counting matches in read-only and non-editable cells.
  • Fixed parseHexColor incorrectly parsing 3-digit shorthand hex colors.
  • Corrected GridSheetRow documentation to prevent corrupting the undo baseline.

2.0.2 #

  • Added a live demo page to showcase GridSheet features and capabilities.
  • Added GridSheetConditionalFormatRule.stopIfTrue to support Excel-style "Stop If True" behavior. When enabled on a matching rule, lower-priority conditional formatting rules are ignored for that cell.
  • Added GridSheetManager.reorderConditionalFormatRulesByPositions to allow changing conditional formatting rule priority after rules have been added.
  • Added the atIndex parameter to addConditionalFormatRule to insert a new conditional formatting rule at a specific priority position instead of adding it at the end.
  • Renamed the GridSheetCellValueChangedEvent.columnName property to name for improved clarity and consistency.
  • Added the title property to GridSheetCellValueChangedEvent to provide additional cell context.
  • Added support for preserving conditional formatting styles when generating exports GridSheetManager.getConditionalFormattingStyles.
  • Fixed duplicate column border rendering in tables when showColumnBorders is enabled with frozen and active columns.

2.0.1 #

Bug Fixes #

  • Fixed formula dependency synchronization after structural changes.
  • Fixed formula undo history after row and column operations.
  • Fixed autofill corruption after sorting and structural modifications.
  • Fixed incorrect numeric autofill pattern detection.
  • Fixed selection rendering with pinned-left and serial-number columns.
  • Fixed hover synchronization across pinned and scrollable sections.
  • Fixed hidden columns retaining stale selection state.
  • Fixed stale selection and expanded-row state after reloads.
  • Fixed duplicated rows sharing mutable data.
  • Fixed stale cell listeners after column insertions and deletions.
  • Fixed row disposal idempotency.
  • Fixed context menu visibility logic.
  • Fixed runtime type errors when assigning null to mixed-type data.
  • Fixed LEFT, RIGHT, and MID throwing RangeError.
  • Improved JSON import validation with descriptive errors.
  • Fixed multiple rendering, pagination, caching, rebuild, documentation, and compatibility issues.
  • Fixed formula-column insertion without matching defaultValues.
  • Secured CSV exports against formula/DDE injection.
  • Fixed stale infinite-scroll responses merging after reloads.
  • Fixed exportToCSVWithFormulas(includeFormulas: true) exporting evaluated values instead of formulas.
  • Fixed initial auto-fetch when using infiniteScroll without serverSidePagination.

2.0.0 #

Breaking Changes #

  • deleteRowsAt/deleteRowsByKeys now return Future<List<ValueKey<String>>> instead of Future<int>.
  • Renamed GridSheetLayoutConfiguration to GridSheetConfiguration (deprecated alias provided).
  • Renamed GridSheetgridManagerHelpers to GridSheetManagerHelpers.
  • Deprecated GridSheetConfiguration.rowHeight; use GridSheetRow.height for per-row heights.

New Features #

  • Added configurable staggered slide-in animation via GridSheetAnimationConfiguration (GridSheet.animationConfiguration).
  • Slide-in animation now automatically replays after pagination changes.
  • Added animateRowsOnSortOrFilter to animate row slide-in after sorting and filtering.
  • Row slide-in animation now supports server-side pagination and infinite scroll when enabled.
  • Added configurable cellChangeFlashEnabled animation for edited or recalculated cells.
  • Added columnVisibilityFadeEnabled for smooth column show/hide width and opacity transitions.
  • Added insertRows and insertColumns APIs with configurable insertion positions.
  • Added defaultValues support for insertRows and insertRowsAt.
  • Added refreshAllFormulas; CSV exports now refresh formulas automatically before exporting.
  • Added selectionIncludesPinnedLeftCells and conditionalFormatIncludesPinnedLeftCells.
  • Added showOnlyEditableColumns to row expansion configuration.
  • Added pinColumnsToLeft, clearPinColumns, pinnedLeftColumns, and activeColumns.
  • rowStateColorBuilder, rowStateIconBuilder, and sortIconBuilder can now return null.
  • Added GridSheetRow.resetHeight to restore a row's original height.
  • Added GridSheetManager.getCellFormula to retrieve a cell's raw formula.
  • Added onlyCurrentPageRows to exportToCSV.

Performance Improvements #

  • Optimized formula recalculation to update only dependent formulas.
  • Improved formula initialization by avoiding unnecessary dependency graph copies.
  • Replaced recursive circular-reference detection with an iterative implementation.
  • Optimized bulk row deletion with a single-pass algorithm.
  • Eliminated unnecessary full-grid rebuilds during column resizing.
  • Reduced selection border rendering overhead.
  • Optimized overflow tooltip detection using cached text measurements.

Improvements #

  • Formula dependency graphs now stay synchronized after structural changes.
  • GridSheetConfiguration now updates automatically on parent rebuilds.
  • Improved server-side pagination by ignoring stale overlapping requests.
  • Added graceful handling for failed server-side page requests.
  • Improved built-in row expansion and row selection interaction.
  • selectColumnAcrossAllPages now correctly affects selected-column APIs.
  • resetAllRowHeights now restores each row's original height.

API Changes #

  • Added APIs for programmatic pinned-column management.
  • Renamed freezeColumnsUptoIndex to pinColumnsLeftUptoIndex (deprecated alias retained).
  • Deprecated freezeColumnsUptoKey in favor of pinColumnsLeftUptoIndex.
  • Renamed GridSheetColumn.pinnedLeft to pinnedLeft (deprecated alias retained).
  • Renamed GridSheetColumnContextInfo.isFrozen to isPinnedLeft (deprecated alias retained).
  • Renamed GridSheet.onCellValueChange to onCellValueChanged (deprecated alias retained).
  • Fixed exportToCSV.onlyCurrentpageRows typo (onlyCurrentPageRows is now canonical).
  • Deprecated GridSheetConfiguration.rowHeight in favor of GridSheetRow.height.
  • Renamed GridSheetgridManagerHelpers to GridSheetManagerHelpers.
  • Renamed Token/TokenType to GridSheetFormulaToken/GridSheetFormulaTokenType (deprecated aliases retained).
  • Restored deprecated compatibility shims for enableReorder and reorderColumnsByOrder.

Default Changes #

  • Changed default rowsPerPage from 50 to 30.
  • Changed default grid border radius from 4px rounded to square.

1.3.1 #

  • Added row expansion feature support — to expand an inline sub-panel (a child table, a form, extra fields).
  • Added new property description in GridSheetColumn — useful for abbreviated column names descriptions.
  • Added manual and scheduled auto-reload with reload callbacks and runtime controls.
  • Added rowsLoader for refreshing client-side data without rebuilding.
  • Added updateConfiguration for updating non-structural layout settings at runtime.
  • Added cell tooltip on overflow — when cell text is truncated, show a tooltip on hover with the full value.
  • Fixed reload lifecycle, auto-reload scheduling, and error handling.
  • Fixed rows-per-page sync and infinite-scroll reload rollback.
  • Fixed missing fields in GridSheetLayoutConfiguration (copyWith, equality, hashCode, and toString).
  • Fixed evaluateFormula return type.
  • Fixed fillCells(increment: true) correctly incrementing numeric values.

1.3.0 #

  • Added server-side (lazy pagination), infinity-scroll paginations feature support
  • Added row-reordering feature support
  • Added cell type GridSheetColumnType.dropdown — built-in dropdown/select cells feature support
  • Renamed enableReorder property to enableColumnReorder
  • Renamed reorderColumnsByOrder method to reorderColumnsByPositions
  • Fixed performance issue when switching theme.
  • Fixed cell level conditional format issue when reordering columns

1.2.9 #

  • Optimized internal code for better overall performance and stability
  • Fixed minor bugs

1.2.8 #

  • Optimized internal code for better overall performance and stability
  • Added row resize functionality
  • Added Unique Count aggregation
  • Added support of showColumnHeaderRow option in layoutConfiguration
  • Added support of ascSortIconColor, descSortIconColor options in styleConfiguration

1.2.7 #

  • Enhanced Pagination
  • Optimized code and improved performance

1.2.6 #

  • Added support of column level aggregations
  • Fixed some issues

1.2.5 #

  • Performance Optimization
  • Added support of new option filterPosition in GridSheetConfiguration
  • Fixed some issues

1.2.4 #

  • Refactor: replace expression style fields with static-based text style BREAKING CHANGE: removed textStyleExpression — use textStyle instead

1.2.3 #

  • Refactor: replace static color/style fields with expression-based conditional formatting API BREAKING CHANGE: removed expression, backgroundColor, fontStyle — use backgroundColorExpression and textStyleExpression instead

1.2.2 #

  • Added dynamic table generation: tables can now be generated at runtime based on columnsCount and rowsCount.
  • Added renameColumns method: allows renaming of column names and optional titles.

1.2.1 #

  • Refactored internal auto-fill logic to reduce code duplication and improve maintainability.
  • Added loadingOverlayColor option in styleConfiguration

1.2.0 #

  • Provided support of autofill(cell drag-to-copy) feature.

1.1.9 #

  • Fixed Undo Feature issue with formula type columns

1.1.8 #

  • Fixed issues related to formula type
  • Added ISBLANK, ISNUMBER, ISTEXT formula functions

1.1.7 #

  • Updated example to demonstrate light and dark theme support
  • Provided support of formula type cell feature.

1.1.6 #

  • Added default norowswidget

1.1.5 #

  • Added issue_tracker link in pubspec file

1.1.4 #

  • Updated package description within pub.dev limits

1.1.3 #

  • Updated example with latest code

1.1.2 #

  • Fixed select all issue

1.1.1 #

  • updated license

1.1.0 #

  • Added row on hover feature.
  • Added headerWrapper feature.
  • Added filterWrapper feature.
  • Added rowWrapper feature.

1.0.5 #

  • Added sample example.

1.0.4 #

  • Removed prints.

1.0.3 #

  • Removed theming classes.

1.0.2 #

  • Removed unrequired classes.

1.0.1 #

  • Removed unrequired passages.

1.0.0 #

  • Initial release of GridSheet.
  • Added row and column operations.
  • Added sorting, filtering, pagination, and selection support.
3
likes
160
points
762
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A powerful Flutter DataGrid/DataTable for large datasets, offering Excel-like features and fully customizable cells — ready with minimal setup. See README for full features

Homepage
View/report issues

Topics

#data-table #data-grid #table #excel #spreadsheet

License

MIT (license)

Dependencies

expressions, flutter

More

Packages that depend on grid_sheet