convert method

String convert(
  1. List<Map> data
)

This method will take data as input and return a String as csv output

Implementation

String convert(List<Map<dynamic, dynamic>> data) {
  // get the keys in all the map
  final List<String> keys = [];

  for (var item in data) {
    for (var key in item.keys) {
      if (keys.contains(key)) continue;
      keys.add(key);
    }
  }

  // genrate the rows.
  final List<List<String>> rows = [keys]; // first row is always the key.

  for (var item in data) {
    final List<String> row = [];
    for (var key in keys) {
      row.add((item[key] ?? "").toString());
    }
    rows.add(row);
  }

  return const ListToCsvConverter().convert(rows);
}