有没有一种方法可以使用Dart中的SpreadsheetDecoder将excel工作表单元格中的数据保存为Number,当前将其保存为文本

时间:2020-06-08 15:49:59

标签: excel flutter dart

我试图将一些值保存在excel表中,作为以后将在公式中使用的数字。我在Dart中使用SpreadsheetDecoder。问题是,我能够保存数据,但是保存的数据是文本格式,因此它是文本,我无法在需要数字的公式中使用。下面提供了我正在使用的代码。

import 'dart:io';
import 'dart:typed_data';
import 'package:path/path.dart';
import 'package:spreadsheet_decoder/spreadsheet_decoder.dart';

File file = File('FileToUpdate.xlsx');
List requiredRow;
SpreadsheetDecoder decoder;
Uint8List bytes;
/*
    Row number (rowNum) for various values in excel sheet
    'aValue':14 , int
    'bValue':15 int
    'cValue':16 double
    */
int rowNum = 14;
int newValue = 5;

void main(List<String> args) {
  bytes = file.readAsBytesSync();
  decoder = SpreadsheetDecoder.decodeBytes(bytes, update: true);
  final table = decoder.tables['SheetName'];
  requiredRow = table.rows[rowNum];
  var requiredValue = requiredRow[0] as String;
  print(requiredValue);

  setValue(newValue);

  final valueStored = getValue();
  print(valueStored);

}

void setValue(int value) {
  decoder.updateCell('SheetToUpdate', 1, rowNum, value);
  File(join('FileToUpdate.xlsx'))
    ..createSync(recursive: true)
    ..writeAsBytesSync(decoder.encode());
}

String getValue() {
  String returnValue = requiredRow[1].toString();
  return returnValue;
}

0 个答案:

没有答案