cellsAsTsv method
Implementation
String cellsAsTsv(Iterable<CellRef> cells) {
final list = cells.where((c) => c.row >= 0 && c.row < rowCount && c.col >= 0 && c.col < colCount).toList();
if (list.isEmpty) return '';
final r0 = list.map((c) => c.row).reduce((a, b) => a < b ? a : b);
final r1 = list.map((c) => c.row).reduce((a, b) => a > b ? a : b);
final c0 = list.map((c) => c.col).reduce((a, b) => a < b ? a : b);
final c1 = list.map((c) => c.col).reduce((a, b) => a > b ? a : b);
final set = list.toSet();
final buf = <String>[];
for (var r = r0; r <= r1; r++) {
final cells = <String>[];
for (var c = c0; c <= c1; c++) {
cells.add(set.contains(CellRef(r, c)) ? _san(cellText(r, c)) : '');
}
buf.add(cells.join('\t'));
}
return buf.join('\n');
}