Export CSV/PDF
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// lib/shared/csv.dart
|
||||
class CsvBuilder {
|
||||
final StringBuffer _buf = StringBuffer();
|
||||
final String delimiter;
|
||||
final String eol;
|
||||
|
||||
CsvBuilder({this.delimiter = ';', this.eol = '\n'});
|
||||
|
||||
static String _escape(String? v, String delimiter) {
|
||||
final s = v ?? '';
|
||||
final mustQuote =
|
||||
s.contains(delimiter) || s.contains('\n') || s.contains('"');
|
||||
var out = s.replaceAll('"', '""');
|
||||
return mustQuote ? '"$out"' : out;
|
||||
}
|
||||
|
||||
void addRow(Iterable<dynamic> cols) {
|
||||
_buf.writeln(
|
||||
cols.map((c) => _escape(c?.toString(), delimiter)).join(delimiter));
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() => _buf.toString();
|
||||
}
|
||||
Reference in New Issue
Block a user