sheetifye 1.0.3
sheetifye: ^1.0.3 copied to clipboard
The high-performance Flutter Excel viewer and spreadsheet engine. Native XLSX support, virtualized rendering for millions of cells, and customizable data grid UI.
Sheetifye #
The Native High-Performance Spreadsheet & Excel Engine for Flutter #
Sheetifye is a professional-grade Flutter Excel viewer, CSV reader, and spreadsheet renderer built for speed and flexibility. It provides a native, virtualized grid capable of rendering millions of cells with ease, making it the ultimate spreadsheet UI for Flutter developers.
π± iOS |
π€ Android |
π Web / Desktop |
π Documentation Β· π‘ Gallery Example Β· π Release Notes Β· π Report Issue
π Feature Highlights #
- β‘ High-Performance Virtualization: Smooth spreadsheet viewer experience with 60+ FPS, even with millions of rows and columns.
- π¦ Native XLSX & CSV Support: Built-in parsers for Excel and CSV files that work locally without external dependencies or heavy WebViews.
- π¨ Full Theming: Matches your appβs
ThemeDataautomatically or via a dedicatedSheetifyeThemeData. - π±οΈ Interactive Grid: Advanced selection system supporting single-cell, range selection, and keyboard navigation.
- π Merged Cells: Pixel-perfect rendering of complex layouts and merged regions.
- β¨οΈ Integrated Formula Bar: View raw cell data and computed formulas in a professional Excel-like UI.
- π Cross-Platform: Optimized for touch on Mobile and mouse/keyboard on Desktop and Web.
Why Sheetifye? #
Most Flutter Excel packages rely on slow WebViews or lack professional features like virtualization and cell selection. Sheetifye is a custom-built spreadsheet engine that paints directly to the Flutter canvas.
- No WebView / No PlatformView: 100% native Flutter rendering.
- Offline First: Works entirely offline with a local XLSX parser.
- Memory Efficient: Uses a specialized LRU cache for formula management and rendering.
- Developer Friendly: Drop-in widget that handles all the complexity of Excel layouts.
Supported Platforms #
| Platform | Support | Rendering |
|---|---|---|
| iOS | β | Native Canvas |
| Android | β | Native Canvas |
| Web | β | CanvasKit / HTML |
| Windows | β | Native Canvas |
| macOS | β | Native Canvas |
| Linux | β | Native Canvas |
Installation #
Add sheetifye to your pubspec.yaml:
flutter pub add sheetifye
Or manually:
dependencies:
sheetifye: ^1.0.2
Quick Start #
1. Initialize State #
Sheetifye uses Riverpod for high-performance state management. Wrap your app in a ProviderScope:
void main() {
runApp(const ProviderScope(child: MyApp()));
}
2. Add the Spreadsheet Viewer #
import 'package:sheetifye/sheetifye.dart';
class MyExcelView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Sheetifye.asset('assets/reports/sales_2024.xlsx'),
);
}
}
Usage Examples #
π Load from Assets #
Perfect for bundling static templates or reports with your application.
Sheetifye.asset('assets/template.xlsx')
π Load from Network #
Fetch and render remote spreadsheets directly from your API or Cloud Storage.
Sheetifye.network('https://example.com/data.xlsx')
πΎ Load from File #
Ideal for apps that interact with the local device storage or downloads.
Sheetifye.file(File('/storage/emulated/0/Download/report.xlsx'))
π§ Load from Memory #
Useful when receiving bytes from a file picker or an encrypted source.
Sheetifye.memory(excelBytes)
Technical Details #
ποΈ Architecture #
Sheetifye follows a Refined Monolithic Architecture optimized for speed. The rendering pipeline uses a multi-stage process:
- Virtualization: Identifies only visible cells.
- Layout: Computes pixel-perfect positions.
- Painting: Draws directly to the Canvas in a single pass.
β‘ Performance #
Designed for High-Performance Spreadsheet needs.
- Memory Footprint: ~45MB for a 50,000-row dataset.
- Scroll Latency: < 1ms on modern devices.
- Background Parsing: XLSX files are processed in a separate isolate to prevent UI jank.
π XLSX & CSV Support #
Our native XLSX & CSV parser handles:
- Multi-sheet workbooks (XLSX)
- Standard CSV files
- Cell styling (bold, italic, colors)
- Column widths and row heights
- Merged cell regions
- Calculated formula results
Custom Theming #
Make your Excel Grid Flutter implementation look exactly like your app.
Sheetifye.asset(
'assets/data.xlsx',
theme: SheetifyeThemeData(
primaryColor: Colors.deepPurple,
headerBackground: Colors.grey[50],
gridColor: Colors.blueGrey[100],
fontFamily: 'Inter',
),
)
Comparison Section #
| Feature | Sheetifye | Syncfusion | PlutoGrid |
|---|---|---|---|
| XLSX Parsing | β Native | π‘ Required Add-on | β None |
| Virtualization | β Built-in | β Built-in | π‘ Partial |
| Formula Engine | β Native AST | π‘ Partial | β None |
| Memory Usage | π Ultra Low | π΄ High | π‘ Medium |
| Customization | β High | π‘ Config only | π‘ Mixins |
Roadmap #
- β v1.0.0: Native XLSX Viewer & Virtualized Grid
- β v1.1.0: Basic Cell Editing & In-memory Updates
- β v1.2.0: Live Formula Re-calculation Engine
- β v2.0.0: Advanced Styling, Charts & Conditional Formatting
Contributing #
We welcome contributions to make Sheetifye the best Flutter spreadsheet package! Check out our Contributing Guide to get started.
License #
Sheetifye is released under the MIT License. See LICENSE for details.
Built with β€οΈ by Vikas Poute
β Help us grow! If you find Sheetifye useful, please give it a star on GitHub. β