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