toCsv static method

String toCsv(
  1. List<Map<String, dynamic>> data, {
  2. List<String>? columns,
})

Export data to CSV format

Implementation

static String toCsv(List<Map<String, dynamic>> data, {List<String>? columns}) {
  if (data.isEmpty) return '';

  final cols = columns ?? data.first.keys.toList();
  final buffer = StringBuffer();

  // Header row
  buffer.writeln(cols.map(_escapeCsvField).join(','));

  // Data rows
  for (final row in data) {
    buffer.writeln(cols.map((col) => _escapeCsvField(row[col]?.toString() ?? '')).join(','));
  }

  return buffer.toString();
}