如何在flv中加载csv文件?

时间:2019-04-16 16:47:42

标签: csv flutter

我想在我的flutter应用程序中使用csv文件,但是我有一个例外,所以如何解决它 我的data.csv id,符号,打开,高,低,关闭,音量,交换,时间戳记,日期,更新日期 33668191,C,16.2,16.3042,16.2,16.3042,477600,NYSE,221115600,1977-01-03,8 / 26/2013 19:35:35 33668192,C,16.3042,16.3542,16.25,16.3542,340800,纽约证券交易所,221202000,1977-01-04,8 / 26/2013 19:35:35 33668670,C,15.3667,15.5208,15.3667,15.4708,76800,NYSE,280731600,1978-11-24,8 / 26/2013 19:35:36

然后我在pubspec.yaml中添加资产

资产:   -资产/同义词库En.csv   -asset / data.csv

列表>数据= [];

loadAsset()异步{

final myData = await  rootBundle.loadString('asset/data.csv');
print(myData);

}

发生异常。 FlutterError(无法加载资产:asset / data.csv)

3 个答案:

答案 0 :(得分:1)

您可以使用软件包import 'package:csv/csv.dart';
内部有一个名为CsvToListConverter()的方法,使用该方法可以将CSV数据转换为漂亮的列表。

import 'package:csv/csv.dart';
...
List<List<dynamic>> rowsAsListOfValues = const CsvToListConverter().convert(data);

数据将存储在[[],[],[],[]]中。

答案 1 :(得分:1)

您的代码应该可以正常工作。我已经检查了它,并且工作正常。

以下是输出:

enter image description here

我已尝试复制您的问题,它需要使用您的“ 资产”文件夹的命名约定, asset/声明来做一些事情> pubspec.yaml 文件,最后在您的代码final myData = await rootBundle.loadString('asset/data.csv');

如果您在其中任何一个中拼错了,就会发生这种情况。

场景1:

创建的文件夹是“资产”

pubspec.yaml

assets:
 - assets/

main.dart

final myData = await rootBundle.loadString("asset/data.csv");

enter image description here

方案2:

创建的文件夹是“资产”

pubspec.yaml

assets:
 - asset/

main.dart

final myData = await rootBundle.loadString("assets/data.csv");

保存 pubspec.yaml 后,会出现如下错误:

enter image description here

但这仍然是可执行的,如果您运行应用程序,则输出为:

enter image description here

场景3:

创建的文件夹为“资产”

pubspec.yaml

assets:
 - assets/

main.dart

final myData = await rootBundle.loadString("assets/data.csv");

方案1和2的错误相同:

enter image description here

由于出现错误:

发生异常。 FlutterError(无法加载资产: asset / data.csv)

检查您的文件夹,并检查pubspec.yaml是否全部正确命名(“资产”)。

我建议按照documentation中的示例中的定义将所有内容全部添加到“ 资产”中。

答案 2 :(得分:0)

简单的尝试是在您的 IDE 上停止应用程序,然后再次运行,而不是使用热重启/重新加载。在我这样做之前,我无法加载我的 CSV 文件。哇!