grid_sheet 2.0.3
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(), andupdateRowHeights()using incorrect row positions with client-side pagination. - Fixed
betweenandnotBetweenfilters failing with negative values. - Fixed corrupted pagination state causing duplicate rows after a failed
infiniteScrollreload. - Fixed incorrect serialization of conditional-format
fontWeightvalues ingetConditionalFormattingStyles(). - Fixed
animationConfiguration,conditionalFormatRules, andevaluatornot updating afterGridSheetrebuilds. - Fixed the context menu remaining open after row/column changes, sorting, filtering, or reloads.
- Fixed
GridSheetRow.copyWith()losing the original row height, breakingresetHeight(). - Fixed
findAndReplacecounting matches in read-only and non-editable cells. - Fixed
parseHexColorincorrectly parsing 3-digit shorthand hex colors. - Corrected
GridSheetRowdocumentation to prevent corrupting the undo baseline.
2.0.2 #
- Added a live demo page to showcase GridSheet features and capabilities.
- Added
GridSheetConditionalFormatRule.stopIfTrueto 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.reorderConditionalFormatRulesByPositionsto allow changing conditional formatting rule priority after rules have been added. - Added the
atIndexparameter toaddConditionalFormatRuleto insert a new conditional formatting rule at a specific priority position instead of adding it at the end. - Renamed the
GridSheetCellValueChangedEvent.columnNameproperty tonamefor improved clarity and consistency. - Added the
titleproperty toGridSheetCellValueChangedEventto provide additional cell context. - Added support for preserving conditional formatting styles when generating exports
GridSheetManager.getConditionalFormattingStyles. - Fixed duplicate column border rendering in tables when
showColumnBordersis 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
nullto mixed-type data. - Fixed
LEFT,RIGHT, andMIDthrowingRangeError. - 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
infiniteScrollwithoutserverSidePagination.
2.0.0 #
Breaking Changes #
deleteRowsAt/deleteRowsByKeysnow returnFuture<List<ValueKey<String>>>instead ofFuture<int>.- Renamed
GridSheetLayoutConfigurationtoGridSheetConfiguration(deprecated alias provided). - Renamed
GridSheetgridManagerHelperstoGridSheetManagerHelpers. - Deprecated
GridSheetConfiguration.rowHeight; useGridSheetRow.heightfor 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
animateRowsOnSortOrFilterto animate row slide-in after sorting and filtering. - Row slide-in animation now supports server-side pagination and infinite scroll when enabled.
- Added configurable
cellChangeFlashEnabledanimation for edited or recalculated cells. - Added
columnVisibilityFadeEnabledfor smooth column show/hide width and opacity transitions. - Added
insertRowsandinsertColumnsAPIs with configurable insertion positions. - Added
defaultValuessupport forinsertRowsandinsertRowsAt. - Added
refreshAllFormulas; CSV exports now refresh formulas automatically before exporting. - Added
selectionIncludesPinnedLeftCellsandconditionalFormatIncludesPinnedLeftCells. - Added
showOnlyEditableColumnsto row expansion configuration. - Added
pinColumnsToLeft,clearPinColumns,pinnedLeftColumns, andactiveColumns. rowStateColorBuilder,rowStateIconBuilder, andsortIconBuildercan now returnnull.- Added
GridSheetRow.resetHeightto restore a row's original height. - Added
GridSheetManager.getCellFormulato retrieve a cell's raw formula. - Added
onlyCurrentPageRowstoexportToCSV.
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.
GridSheetConfigurationnow 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.
selectColumnAcrossAllPagesnow correctly affects selected-column APIs.resetAllRowHeightsnow restores each row's original height.
API Changes #
- Added APIs for programmatic pinned-column management.
- Renamed
freezeColumnsUptoIndextopinColumnsLeftUptoIndex(deprecated alias retained). - Deprecated
freezeColumnsUptoKeyin favor ofpinColumnsLeftUptoIndex. - Renamed
GridSheetColumn.pinnedLefttopinnedLeft(deprecated alias retained). - Renamed
GridSheetColumnContextInfo.isFrozentoisPinnedLeft(deprecated alias retained). - Renamed
GridSheet.onCellValueChangetoonCellValueChanged(deprecated alias retained). - Fixed
exportToCSV.onlyCurrentpageRowstypo (onlyCurrentPageRowsis now canonical). - Deprecated
GridSheetConfiguration.rowHeightin favor ofGridSheetRow.height. - Renamed
GridSheetgridManagerHelperstoGridSheetManagerHelpers. - Renamed
Token/TokenTypetoGridSheetFormulaToken/GridSheetFormulaTokenType(deprecated aliases retained). - Restored deprecated compatibility shims for
enableReorderandreorderColumnsByOrder.
Default Changes #
- Changed default
rowsPerPagefrom 50 to 30. - Changed default grid border radius from 4px rounded to square.
1.3.1 #
- Added
row expansionfeature support — to expand an inline sub-panel (a child table, a form, extra fields). - Added new property
descriptioninGridSheetColumn— useful for abbreviated column names descriptions. - Added manual and scheduled auto-reload with reload callbacks and runtime controls.
- Added
rowsLoaderfor refreshing client-side data without rebuilding. - Added
updateConfigurationfor 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, andtoString). - Fixed
evaluateFormulareturn type. - Fixed
fillCells(increment: true)correctly incrementing numeric values.
1.3.0 #
- Added
server-side (lazy pagination),infinity-scrollpaginations feature support - Added row-reordering feature support
- Added cell type
GridSheetColumnType.dropdown— built-in dropdown/select cells feature support - Renamed
enableReorderproperty toenableColumnReorder - Renamed
reorderColumnsByOrdermethod toreorderColumnsByPositions - 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 Countaggregation - Added support of
showColumnHeaderRowoption inlayoutConfiguration - Added support of
ascSortIconColor,descSortIconColoroptions instyleConfiguration
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— usetextStyleinstead
1.2.3 #
- Refactor: replace static color/style fields with expression-based conditional formatting API
BREAKING CHANGE: removed
expression,backgroundColor,fontStyle— usebackgroundColorExpressionandtextStyleExpressioninstead
1.2.2 #
- Added dynamic table generation: tables can now be generated at runtime based on
columnsCountandrowsCount. - Added
renameColumnsmethod: allows renaming of column names and optional titles.
1.2.1 #
- Refactored internal auto-fill logic to reduce code duplication and improve maintainability.
- Added
loadingOverlayColoroption 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.