因此,我试图追加保存的Excel文件,而不删除现有的数据。每次我尝试的东西只是覆盖文件。在如果我检查文件是否存在,如果不创建它,下次单击按钮时追加它。有人能解释我这段代码是怎么回事吗?我开始学习flutter/java/dart只有几个星期了。我已经检查了包API文档,Flutter文档,我只是不能得到它为什么它不工作,即使我通过附加文件模式。我希望我能解释我的问题,我的英语不是最好的。
var excel = Excel.createExcel();
var sheet = excel.sheets[excel.getDefaultSheet() as String];
var dir = "/storage/emulated/0/Download/";
String name = "ExcelTest2.xlsx";
if (await File(dir + name).exists()) {
List<String> data = ["data"];
sheet!.appendRow(data);
var bytes = excel.save();
File(join(dir + name))
..createSync(recursive: true)
..writeAsBytesSync(bytes!, mode: FileMode.append);
print("appended");
} else {
print('File is Being Written To File Sytem');
sheet!.setColAutoFit(0);
sheet.setColAutoFit(1);
sheet.setColAutoFit(2);
sheet.setColAutoFit(3);
sheet.setColAutoFit(4);
sheet.setColAutoFit(5);
sheet.setColAutoFit(6);
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 0)).value = "Date/Time";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: 0)).value = "Type";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: 0)).value = "data5";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 3, rowIndex: 0)).value = "data4";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 4, rowIndex: 0)).value = "data3";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 5, rowIndex: 0)).value = "data1 ";
sheet.cell(CellIndex.indexByColumnRow(columnIndex: 6, rowIndex: 0)).value = "data2";
var filebytes = excel.save();
File(join(dir + name))
..createSync(recursive: true)
..writeAsBytes(filebytes!);
}
字符串
尝试与未来,但我不能真正得到的工作,它只是一样的,就像上面(或不?)
1条答案
按热度按时间tpgth1q71#
您正在创建一个新的excel文件的示例,然后尝试追加它,这将导致重新配置现有文件,而不是追加它。
而不是做
var excel = Excel.createExcel();
你应该读取你的现有文件,然后追加它。阅读“读取XLSX文件”部分了解更多详情。