我一直在寻找以浮动方式将csv导入数据库。但不幸的是,我找不到与此案有关的文章。所以我想知道是否有一种方法可以将csv导入数据库。如果是,我该如何实现?就我而言,我打开文件选择器,并想要导入csv文件。我可以轻松地以Kotlin方式进行操作,但不能以颤抖的方式进行操作。我将不胜感激。
答案 0 :(得分:2)
嗯,这并不简单。
您通常会使用诸如https://pub.dev/packages/csv或https://pub.dev/packages/spreadsheet_decoder之类的格式来解析CSV。
所以它看起来像:
final input = new File('documents/file.csv').openRead();
然后将其转换为列表:
final fields = await input.transform(utf8.decoder).transform(new CsvToListConverter()).toList();
完成此操作后,通常您将具有要进行批量更新的功能。
首先,创建一个数据库
Database database = await openDatabase(path, version: 1,
onCreate: (Database db, int version) async {
await db.execute(
'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});
然后,您可以使用此处== https://stackoverflow.com/a/56507307/1737811这样的一些辅助方法,以便使用结果填充数据库字段。
这样,您就可以传递tablename
,当然也可以传递List
,其中包含刚解码的CSV中的值。