textForCellRange method

String textForCellRange(
  1. int startCol,
  2. int endColInclusive
)

Implementation

String textForCellRange(int startCol, int endColInclusive) {
  if (runs.isEmpty || endColInclusive < startCol) {
    return '';
  }

  final normalizedStart = startCol < 0 ? 0 : startCol;
  final normalizedEnd = endColInclusive >= cellCount
      ? cellCount - 1
      : endColInclusive;
  if (normalizedEnd < normalizedStart) {
    return '';
  }

  final buffer = StringBuffer();
  var cellIndex = 0;
  for (final run in runs) {
    for (final character in _splitCharacters(run.text)) {
      if (cellIndex >= normalizedStart && cellIndex <= normalizedEnd) {
        buffer.write(character);
      }
      cellIndex++;
      if (cellIndex > normalizedEnd) {
        return buffer.toString();
      }
    }
  }
  return buffer.toString();
}