read method

  1. @override
CellValue read(
  1. String v
)
override

Implementation

@override
CellValue read(String v) {
  if (v == '0') {
    return const TimeCellValue(
      hour: 0,
      minute: 0,
      second: 0,
      millisecond: 0,
      microsecond: 0,
    );
  }
  final value = num.parse(v);
  if (value < 1) {
    return TimeCellValue.fromFractionOfDay(value);
  }
  var delta = value * 24 * 3600 * 1000;
  var dateOffset = DateTime.utc(1899, 12, 30);
  final utcDate = dateOffset.add(Duration(milliseconds: delta.round()));
  if (!v.contains('.') || v.endsWith('.0')) {
    return DateCellValue.fromDateTime(utcDate);
  } else {
    return DateTimeCellValue.fromDateTime(utcDate);
  }
}