我想在我的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)
答案 0 :(得分:1)
您可以使用软件包import 'package:csv/csv.dart';
内部有一个名为CsvToListConverter()
的方法,使用该方法可以将CSV数据转换为漂亮的列表。
import 'package:csv/csv.dart';
...
List<List<dynamic>> rowsAsListOfValues = const CsvToListConverter().convert(data);
数据将存储在[[],[],[],[]]
中。
答案 1 :(得分:1)
您的代码应该可以正常工作。我已经检查了它,并且工作正常。
以下是输出:
我已尝试复制您的问题,它需要使用您的“ 资产”文件夹的命名约定, 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");
方案2:
创建的文件夹是“资产”
pubspec.yaml
assets: - asset/
main.dart
final myData = await rootBundle.loadString("assets/data.csv");
保存 pubspec.yaml 后,会出现如下错误:
但这仍然是可执行的,如果您运行应用程序,则输出为:
场景3:
创建的文件夹为“资产”
pubspec.yaml
assets: - assets/
main.dart
final myData = await rootBundle.loadString("assets/data.csv");
方案1和2的错误相同:
由于出现错误:
发生异常。 FlutterError(无法加载资产: asset / data.csv)
检查您的文件夹,并检查pubspec.yaml是否全部正确命名(“资产”)。
我建议按照documentation中的示例中的定义将所有内容全部添加到“ 资产”中。
答案 2 :(得分:0)
简单的尝试是在您的 IDE 上停止应用程序,然后再次运行,而不是使用热重启/重新加载。在我这样做之前,我无法加载我的 CSV 文件。哇!