有没有办法以 Flutter 方式将 CSV 文件导入 Sqlite 数据库?

kin*_*sis 3 csv sqlite dart flutter

我一直在寻找以颤振方式将 csv 导入数据库。但不幸的是,我找不到与此案例相关的文章。所以我想知道是否有办法将csv导入数据库。如果是,我怎样才能做到这一点?就我而言,我打开文件选择器并想导入 csv 文件。我可以用 Kotlin 的方式轻松地做到这一点,但不能以颤动的方式做到这一点。我将不胜感激任何帮助。

mut*_*ard 5

嗯,这并不简单。

您通常会使用https://pub.dev/packages/csvhttps://pub.dev/packages/spreadsheet_decoder 之类的东西来解析 CSV。

所以它看起来像:

final input = new File('documents/file.csv').openRead();

Run Code Online (Sandbox Code Playgroud)

然后将其转换为列表:

final fields = await input.transform(utf8.decoder).transform(new CsvToListConverter()).toList();

Run Code Online (Sandbox Code Playgroud)

完成此操作后,您通常会拥有一个进行批量更新的函数。

一、创建数据库

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)');
});

Run Code Online (Sandbox Code Playgroud)

然后你可以使用一些像这里提到的辅助方法 => /sf/answers/3955511521/以便用你的结果填充数据库字段。

这样你就可以传递你的tablename,当然你List包含来自你刚刚解码的 CSV 的值。