dart 试图追加excel文件上扑(excel 2.1.0包),但其重复的文件,每次

7eumitmz  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(122)

因此,我试图追加保存的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!);
  }

字符串
尝试与未来,但我不能真正得到的工作,它只是一样的,就像上面(或不?)

tpgth1q7

tpgth1q71#

您正在创建一个新的excel文件的示例,然后尝试追加它,这将导致重新配置现有文件,而不是追加它。
而不是做var excel = Excel.createExcel();你应该读取你的现有文件,然后追加它。
阅读“读取XLSX文件”部分了解更多详情。

相关问题