【问题标题】:Convert CSV to List<List<dynamic>> with rows and columns将 CSV 转换为具有行和列的 List<List<dynamic>>
【发布时间】:2021-12-04 22:57:29
【问题描述】:

我想将 csv 转换为 List 我的代码正在运行并获取文件并将其转换如下: [[项目 1;1200;1300],[项目 2;1200;1300]]。

它将 [item 1;1200;1300] 作为单个元素处理,我无法单独到达 item 1 或 1200 或 1300。

我想像这样处理它 List[0][0] 结果将是第 1 项。

TextButton(
                onPressed: () async {
                  result = await FilePicker.platform.pickFiles(
                    type: FileType.custom,
                    allowedExtensions: ['csv'],
                    dialogTitle: 'Choose Your File',
                  );
                  if (result != null) {
                    PlatformFile file = result!.files.first;
                    filePath = file.path!;
                    prvdr.openFile(filePath);
                  } else {}
                },
                child: const Text('Press Here'),
              ),

函数

void openFile(filePath) async {
    File itemsFile = File(filePath);
    print('CSV to List');
    final input = itemsFile.openRead();
    final fields = await input.transform(utf8.decoder).transform(const CsvToListConverter()).toList();
    print(fields);
    for(var i = 0; i < fields.length; i++){
      print(fields[i][0]);
      print(fields[i][1]);
      print(fields[i][2]);
    }
  }

我的csv是这样的

item 1;1200;1300
item 2;1200;1300
item 3;1200;1300
item 4;1200;1300

【问题讨论】:

    标签: list flutter csv file


    【解决方案1】:

    你应该做一个 for 循环,在列表上循环并用 ; 分割每个元素。

    例子:

    final fields = await input.transform(utf8.decoder).transform(const CsvToListConverter()).toList();
    List<List<String>> finalList = [];
    
    for(var i = 0; i < fields.length; i++){
      finalList.add(fields[i].split(";"));
    }
    
    // Now you cand access finalList
    for(var i = 0; i < finalFields.length; i++){
      print(finalFields[i][0]);
      print(finalFields[i][1]);
      print(finalFields[i][2]);
    }
    

    【讨论】:

    • 我解决了,感谢您抽出宝贵时间了解您的解决方案,谢谢。
    • 非常欢迎,如果您认为答案有帮助,请随时为答案投票
    猜你喜欢
    • 2021-05-20
    • 2020-09-04
    • 2021-03-29
    • 2016-07-18
    • 1970-01-01
    • 2021-11-17
    • 2021-03-27
    • 1970-01-01
    • 2021-05-27
    相关资源
    最近更新 更多