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. โญ