如何在颤动的列表中获得所需的数据?

Posted

技术标签:

【中文标题】如何在颤动的列表中获得所需的数据?【英文标题】:How can I get the desired data in the list in flutter? 【发布时间】:2021-12-07 09:34:12 【问题描述】:

我有一个从 excel 中读取的列表。在这里,我想获取列表中索引号为 1 和 3 的数据。例如,我只想获取“ad”和“name”值。

示例:[tr, ad, en, name]= [ad, name]

debug=I/flutter (25765): ([Dil1, Kelime1, Dil2, Kelme2], [tr, ad, en, name], [tr, öğrenci, en, student], [en,teaching, tr, öğren])

行类型是Iterable

Future readExcel() async 
        var excelfileDetails = new Word();
    
        var file = excelPath;
        var bytes = File(file).readAsBytesSync();
        var excel = Excel.decodeBytes(bytes);
        print('$excel');
    
        print(excel.tables.keys); //sheet Name
        print(excel.tables[excel.tables.keys.first]!.maxCols);
        print(excel.tables[excel.tables.keys.first]!.maxRows);
        final row = excel.tables[excel.tables.keys.first]!.rows
            .map((e) => e.map((e) => e!.value).toList());
        print(row);

【问题讨论】:

你想要这个输出:[Kelime1, Kelme2], [ad, name], [öğrenci, student], [teach, öğren] ? 【参考方案1】:

需要先解析成List:

final row = excel.tables[excel.tables.keys.first]!.rows
        .map((e) => e.map((e) => e!.value).toList()).toList();

然后:

row.forEach((e)
          int index = row.indexOf(e);
          row[index].removeAt(0);
          row[index].removeAt(1);
        );

输出:

[Kelime1, Kelme2], [ad, name], [öğrenci, student], [teach, öğren]

【讨论】:

感谢您的回复。我收到错误“没有为类型'Iterable'定义方法'indexOf'。(文档)尝试将名称更正为现有方法的名称,或定义一个名为'indexOf'的方法。 好的,我已经更新了代码! 非常感谢。这是工作。我需要学习这个主题。你能在颤振中找到我的主题列表和地图等吗....

以上是关于如何在颤动的列表中获得所需的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何编写/优化需要从 6 个相关表中选择数据的 sql 查询,直到获得所需的数据

如何更改下拉列表所需的消息[重复]

如何减少显示输出所需的加载时间?

使用位图色彩乘法时如何获得所需的颜色?

当所需的触摸次数超过一次时,如何获得 UILongPressGestureRecognizer 的触摸位置?

如何通过比较数字来获得所需的功能?