[Custom Action] Download Firestore Query Collection As Excel

  Hello,

Level : Beginner
Dependencies :
Excel :Β  https://pub.dev/packages/excel
Download : https://pub.dev/packages/download

I think this is self explanatory so i will not go deeper into explanation.[image.png]
import 'package:excel/excel.dart';
import 'package:path_provider/path_provider.dart';
import 'package:download/download.dart';
import 'dart:math' as math;
import 'dart:convert';
import 'dart:io';

Future exportExcel(List query) async {
  var excel = Excel.createExcel();
  Sheet sheetObject = excel['Commandes'];
  excel.delete('Sheet1');
  List dataList = [
    "reference",
    "field1",
    "field2",
    "field3",
    "field4",
    "field n+1",    
  ];
  sheetObject.insertRowIterables(dataList, 0);

  query.asMap().forEach((index, record) => sheetObject.insertRowIterables([
        record.reference.id,
        record.field1.toString(),
        record.field2.toString(),
        record.field3.toString(),
        record.field4.toString(),
        record.field n+1.toString(),        
      ], index + 1));

  
    final filename = "Extraction des commandes " + DateTime.now().toString() + ".xlsx";
    final stream = Stream.fromIterable(excel.encode());
    return download(stream, filename);

}  

I'm sure this can be done without manually making the constructor Header / Row. I let a real dev to optimize it.

2
11 replies