sheetifye 1.0.0
sheetifye: ^1.0.0 copied to clipboard
A lightweight virtualized spreadsheet viewer for Flutter with native XLSX support.
Tip
One widget. Native XLSX. 60+ FPS. Zero dependencies.
Drop Sheetifye into any Flutter app and get a fully interactive spreadsheet viewer — on Mobile, Desktop, and Web — in under 5 minutes.
📱 iOS |
🤖 Android |
🌐 Web |
📖 Docs · 💡 Examples · 📋 Changelog · 🐛 Report Bug
Why Sheetifye? #
Most Flutter apps that deal with data eventually hit the same wall: you need to show a spreadsheet, but the options are either too heavy, require a server, or look nothing like a real Excel file.
Sheetifye solves this with a purpose-built virtualized renderer that parses .xlsx natively, in-app, with no external dependencies. It handles workbooks at any scale while feeling completely native on every platform.
✦ No Excel required ✦ Works fully offline ✦ One widget, all platforms
Features #
| 🚀 Virtualized Rendering | Renders only what's on screen — 60+ FPS even with millions of cells |
| 📦 Native XLSX Parsing | Full in-app parser with no external dependencies or installations |
| 🎨 Theme Aware | Automatically adapts to your app's ThemeData and ColorScheme |
| 🖱️ Smart Selection | Single cell and range selection with full keyboard and touch support |
| ⌨️ Formula Bar | Integrated viewer that shows raw cell values and formulas |
| 📐 Merged Cells | Accurate rendering and hit-testing across merged cell regions |
| 🌐 Cross-Platform | Touch-optimized on mobile, mouse & keyboard ready on desktop and web |
Quick Start #
1 · Add the dependency #
# pubspec.yaml
dependencies:
sheetifye: ^1.0.0
flutter pub add sheetifye
2 · Wrap with ProviderScope #
Sheetifye uses Riverpod internally. Add ProviderScope at your app root:
void main() {
runApp(const ProviderScope(child: MyApp()));
}
3 · Drop in the widget #
import 'package:sheetifye/sheetifye.dart';
class SpreadsheetPage extends StatelessWidget {
const SpreadsheetPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Sheetifye.asset('assets/reports/annual_sales.xlsx'),
);
}
}
That's it. You have a fully interactive spreadsheet viewer.
Data Sources #
// 📁 From app assets
Sheetifye.asset('assets/data.xlsx')
// 🌐 From a remote URL
Sheetifye.network('https://example.com/reports/q4.xlsx')
// 💾 From the device file system
Sheetifye.file(File('/path/to/spreadsheet.xlsx'))
// 🧠 From raw bytes
Sheetifye.memory(bytes)
Theming #
Sheetifye.asset(
'assets/data.xlsx',
theme: SheetifyeThemeData(
primary: Colors.indigo,
accent: Colors.amber,
headerBackground: Colors.grey.shade100,
fontFamily: 'Inter',
),
)
When no theme is set, Sheetifye inherits your app's active
ThemeDataandColorSchemeautomatically.
Roadmap #
| Version | Status | Highlights |
|---|---|---|
| v1.0.0 | ✅ Released | Virtualized viewer · XLSX parsing · Selection · Formula bar · Merged cells |
| v1.1.0 | 🔨 In Progress | Basic cell editing · In-memory value updates |
| v1.2.0 | 📋 Planned | Live formula engine · Real-time recalculation |
| v2.0.0 | 🔮 Future | Advanced styling · Charts · Conditional formatting |
Contributing #
All contributions are welcome — bug fixes, features, docs, and ideas.
# 1. Fork & clone
git clone https://github.com/vikaspoute/sheetifye.git
# 2. Install dependencies
flutter pub get
# 3. Run tests
flutter test
Read the Contributing Guide before opening a pull request. For major changes, open an issue first.
License #
Distributed under the MIT License. See LICENSE for details.
Built with ❤️ by Vikas Poute
⭐ Found it useful? A star goes a long way — it helps others discover Sheetifye! ⭐