Building Complex, Excel-Style Data Tables with PDF & Excel Exports in Flutter πŸ“Š

# flutter# dart# ui# mobileuidevelopment
Building Complex, Excel-Style Data Tables with PDF & Excel Exports in Flutter πŸ“ŠInnovate Nest Labs

If you have ever been tasked with building an enterprise dashboard, an inventory tracker, or a...

If you have ever been tasked with building an enterprise dashboard, an inventory tracker, or a financial report in Flutter, you already know the struggle.

Flutter’s built-in DataTable and Table widgets are fantastic for simple lists. But the moment your client asks for nested sub-headers, sticky "freeze-pane" columns, inline editing, and PDF/Excel exports, you are usually looking at weeks of custom UI architecture.

I got frustrated dealing with this exact problem, so I built a robust solution: nrb (Nexora Report Builder).

What is nrb?
nrb is a customizable, highly responsive Flutter table widget builder designed specifically for complex data visualization and structured data-entry UIs.

Here is a breakdown of what it handles out of the box:

πŸ“Œ Complex Nested Headers: Build top-level main headers with multiple sub-headers underneath, plus sticky left-side columns that stay locked while scrolling horizontally.

πŸ“± Fully Responsive & Resizable: Columns auto-measure their content (wrap_content) to fill available space. Users can even double-click edges to auto-fit or drag to manually resize columns.

✍️ Editable Data Grids: Mix static TextCells with interactive TextFieldCells. This turns a static report into a massive, scrollable data-entry form.

πŸ”„ Instant Data Extraction: Wrap your table with a ReportController to extract all grid data instantly into a 2D array via a Submit action.

πŸ’° Built-in Number Formatting: Easily format numbers with International or Indian comma separation, along with granular rounding rules using the built-in NRBNumberFormatter.

The Superpower: Native PDF, Excel, & Word Exports πŸ“₯
Building the UI is only half the battle; enterprise users always want to download their data.

nrb comes with a built-in, interactive Floating Action Button (FAB) that triggers backend-driven exports of your perfectly formatted grids to Excel (.xlsx), PDF, and Word. It even integrates directly with the device's native sharing dialogs (via share_plus).

(Note: The UI package is open-source under a custom license, while the file generation utilizes the premium Innovate Nest Labs API. However, we have included a free demo tier so you can test the export functionality immediately!)

How to use it

  1. Add the dependency:

YAML
dependencies:
nrb: ^[latest_version]

  1. Build your grid: Setting up a complex table is as simple as defining your headers and passing your data matrix to the ReportMaker widget.

Dart
`import 'package:flutter/material.dart';
import 'package:nrb/nrb.dart';

class EnterpriseDashboard extends StatelessWidget {
final ReportController _reportController = ReportController();

final List headers = [
HeaderCell(text: "Financial Overview", span: 3, backgroundColor: Colors.green),
];

final List subHeaders = [
SubHeaderCell(text: "Target", backgroundColor: Colors.green),
SubHeaderCell(text: "Actual", backgroundColor: Colors.green),
SubHeaderCell(text: "Growth %", backgroundColor: Colors.green),
];

final leftColumns = [
TextCell(itemContent: "Q1 - 2026", backgroundColor: Colors.blue[200]),
TextCell(itemContent: "Q2 - 2026", backgroundColor: Colors.blue[200]),
];

final tableData = [
[
TextCell(itemContent: "1500000", isAmount: true, numberFormatType: CellNumberFormat.indian),
TextCell(itemContent: "1250000", isAmount: true, numberFormatType: CellNumberFormat.indian),
TextFieldCell(initialValue: "83.33%"), // Editable!
],
// ... more rows
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Enterprise Dashboard')),
body: ReportMaker(
headers: headers,
subHeaders: subHeaders,
leftColumn: leftColumns,
tableData: tableData,
stickyHeaderLabel: "Quarter",

    // --- EXPORT FEATURES ---
    controller: _reportController,
    enableDownload: true,          
    showDownloadFloatingButton: true, 

    // πŸ’‘ Use these exact credentials to test the Free Export Demo:
    packageName: "com.innovatenestlabs.demoapp", 
    apiKey: "", 
    reportName: "Financial Report",
  ),
);
Enter fullscreen mode Exit fullscreen mode

}
}`
Try it out!
If you are building dashboards, financial apps, or any software that requires heavy data visualization, drop nrb into your project and let it handle the heavy lifting.

πŸ”— Check out the full package on pub.dev: [https://pub.dev/packages/nrb]