Formula Engine
Evaluate expressions like SUM(A1, 25) with familiar
spreadsheet-style references.
FlutterCells
FlutterCells gives you editable grids, cell references, and formula evaluation so your mobile, tablet, and desktop Flutter apps feel like a real spreadsheet experience.
From finance workflows to inventory planners, FlutterCells helps users edit data and compute formulas directly in your app.
Evaluate expressions like SUM(A1, 25) with familiar
spreadsheet-style references.
Smooth scrolling, editable cells, and mobile-friendly interactions for production Flutter apps.
Works across iOS, Android, web, and desktop through a unified Flutter component model.
Add the widget, provide data, and let formula evaluation handle live recalculations.
final sheet = FlutterCellsSheet(
rows: 100,
columns: 12,
initialData: {
'A1': 10,
'A2': 25,
'A3': '=SUM(A1, A2, 5)',
},
onCellChange: (cell, value) {
debugPrint('$cell changed to $value');
},
);
// Formula result in A3 => 40
Try SUM with a live cell value for A1. Example:
SUM(A1, 25)
Result: 35
Real examples from the package README, including formulas, date arithmetic, and time arithmetic.
ExcelGrid grid = ExcelGrid([
['12', '12 * 2'],
['A1 + 1', 'SUM(A1, B1)'],
['', 'IF(ISBLANK(A1), "A1 is blank", "A1 is not blank")']
]);
final evaluator = FormulaEvaluator(grid);
print(evaluator.cell(coordinate: 'B2').value); // 36
ExcelGrid dateGrid = ExcelGrid([
['01/15/2024', '5', 'A1 + B1'],
['03/01/2024', '01/01/2024', 'A2 - B2'],
]);
final dateEvaluator = FormulaEvaluator(dateGrid);
print(dateEvaluator.cell(coordinate: 'C1').displayValue);
// 01/20/2024
ExcelGrid timeGrid = ExcelGrid([
['14:30', '45', 'A1 + B1'],
['15:30', '14:15', 'A2 - B2'],
]);
final timeEvaluator = FormulaEvaluator(timeGrid);
print(timeEvaluator.cell(coordinate: 'C1').displayValue);
// 3:15 PM
final evaluator = FormulaEvaluator(grid);
print(evaluator.cell(coordinate: 'A1').value);
print(evaluator.cell(rowIndex: 2, columnIndex: 1).value);
Built-in functions and parsing behavior for spreadsheet-like workflows.