readCsvAsDatacat static method

Future<Datacat> readCsvAsDatacat(
  1. String path
)

Reads a CSV file and returns a Datacat.

This function uses CsvToListConverter from the csv package, which properly handles quoted fields and escaped commas.

Implementation

static Future<Datacat> readCsvAsDatacat(String path) async {
  final content = await readFile(path);
  // Using CsvToListConverter with default settings:
  // textDelimiter is '"' and fieldDelimiter is ','.
  final converter =
      CsvToListConverter(eol: "\n", textDelimiter: '"', fieldDelimiter: ',');
  List<List<dynamic>> rows = converter.convert(content);
  if (rows.isEmpty) return Datacat(columns: [], rows: []);
  // Assume the first row contains column headers.
  final columns = rows.first.map((e) => e.toString()).toList();
  final dataRows = rows.skip(1).toList();
  return Datacat(columns: columns, rows: dataRows);
}