Sheetifye

The Native High-Performance Spreadsheet & Excel Engine for Flutter

Pub Version License Flutter Issues


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.

Sheetifye β€” High Performance Flutter Excel Viewer
Virtualized Spreadsheet Rendering on iOS
πŸ“± iOS
High Performance Excel Grid on Android
πŸ€– Android
Native XLSX Viewer on Flutter Web
🌐 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 ThemeData automatically or via a dedicated SheetifyeThemeData.
  • πŸ–±οΈ 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:

  1. Virtualization: Identifies only visible cells.
  2. Layout: Computes pixel-perfect positions.
  3. 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

  • x 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. ⭐

Libraries

sheetifye