csvToMap method
Implementation
Map<int, List<String>> csvToMap(String input) {
final regex = RegExp(r',(?=(?:[^"]*"[^"]*")*[^"]*$)');
final lines = input.split('\n').where((line) => line.isNotEmpty).toList();
final res = <int, List<String>>{};
for (var i = 0; i < lines.length; i++) {
final line = lines[i];
final parts = line.split(regex).map((part) {
var trimmed = part.trim();
if (trimmed.length >= 2 &&
trimmed.startsWith('"') &&
trimmed.endsWith('"')) {
trimmed = trimmed.substring(1, trimmed.length - 1);
return trimmed.replaceAll('""', '"');
}
return trimmed;
}).toList();
res[i] = parts;
}
return res;
}