【问题标题】:Flutter - Convert data from firestore into Excel sheetFlutter - 将数据从 Firestore 转换为 Excel 工作表
【发布时间】:2021-05-24 15:01:15
【问题描述】:

如何在 Android 应用和 Flutter Web 上将 Firestore 中的数据转换为 Excel 工作表? 任何回复将不胜感激...提前致谢!

【问题讨论】:

  • 这个问题有点不清楚;通常,要使用 Firestore,您需要使用 Firestore SDK 编写代码来读取和写入数据。一旦您编写了该代码,您就可以对该数据执行任何您想要的操作 - 将其保存到文件中或在显示器上显示图像或从中创建电子表格。您是否有一些您尝试过但遇到困难的代码?请花点时间查看How do I ask a good question?How to create a Minimal, Complete, and Verifiable example
  • 是的,我能够获取数据,但我不知道如何将它们排列在 Excel 工作表中并将其作为附件发送到用户的电子邮件,无论是在网络上还是在应用程序上。
  • 那么,如果您可以从 Firebase 获取数据,那么是什么阻止您从该数据创建 excel .xlsx 文件? SO上有一些很棒的问答-见here,然后这里实际上有一个完整的标签export to excel
  • 我只是不知道如何根据数据制作 Excel 表,排列行和列,然后通过网络和应用程序将其发送给用户...我只是可以'也没有例子或从哪里开始......我实际上是颤振的新手
  • 专注于创建 xlsx 文件。一旦你有了那个文件,你就可以通过电子邮件发送它,上传它或任何你想要的。 SO 不是代码编写服务,也不是为第三方库提供建议的服务; SO 用于帮助现有代码。我刚刚在互联网上搜索了有关创建 xlsx 文件的内容,并且有数千个有用的链接来说明如何做到这一点。做一些研究,写一些代码,当你遇到困难时,发布一个关于它的问题!事实上,请查看 this question 了解如何在 Swift 中进行操作。

标签: excel flutter dart


【解决方案1】:

Excel library for flutter

您可以在此处浏览文档。

现在 jay 要求详细解释您将如何检索数据并将其存储在 excel 工作表中,

第一步,

var excel = Excel.createExcel();           //create an excel sheet
Sheet sheetObject = excel['SheetName'];    //create an sheet object  

第二步,在excel表格中写入的命令, 其中 A 是列 id,1 是行。

 var cell = sheetObject.cell(CellIndex.indexByString("A1"));
 cell.value = 8; // Insert value to selected cell;

第三步,从firebase获取数据

QuerySnapshot _qs =
        await _notificationRef.where('language', isEqualTo: selectedLang).get(); // Lets say I have some collection where I need to get some documents with specific language

//This loop will iterate in all of the documents in the collection

for (int i = 0; i < _qs.docs.length; i++) {
 string data = _qs.docs[i].data()['names'];  //Where name is the field value in the document and i is the index of the document.
}  
});   

现在如果我们结合第二步和第三步

QuerySnapshot _qs =
        await _notificationRef.where('language', isEqualTo: selectedLang).get(); 

for (int i = 0; i < _qs.docs.length; i++) {
 var cell = sheetObject.cell(CellIndex.indexByString('A${i+1}'));   //i+1 means when the loop iterates every time it will write values in new row, e.g A1, A2, ...
 cell.value =  _qs.docs[i].data()['names']; // Insert value to selected cell;
}  
});   

完成数据部分后,您可以保存文件,

      // Save the Changes in file

      excel.encode().then((onValue) {
        File(join("Path_to_destination/excel.xlsx"))
        ..createSync(recursive: true)
        ..writeAsBytesSync(onValue);
    });

完成保存后,您可以选择任何库与其他人共享您的工作表,

通常这个库会要求你提供一个文件或文件路径 您可以使用最后一个代码块轻松提供,我将文件路径传递给 join 方法

【讨论】:

  • 好的,我知道这个插件,但是如何将 Firestore 数据库中的数据放入 Excel 表格中?这个插件可以在flutter web上使用吗?创建工作表后可以将其发送给用户吗?喜欢通过电子邮件发送或在应用程序和网络上的设备上下载它?
  • 是的,您需要什么来共享此工作表,首先您将此文件保存在您的系统中,然后您可以通过电子邮件发送它或您想用它做什么。是的,这个库适用于所有平台。
  • 现在对于 firestore 部分,您可以检索数据运行一些 循环 并根据需要在工作表中添加数据。
  • 可以用writeAsBytes方法保存文件。
  • 好的,但是系统中的保存是什么意思?像我必须先将其保存在设备上然后再发送电子邮件吗?如果是这样,那么我将如何将文件夹保存在系统上?就像必须下载它一样...我希望它自动收到带有 excel 文件的电子邮件作为用户的附件,而不是手动,这样可能吗?
猜你喜欢
  • 1970-01-01
  • 2022-10-06
  • 2020-06-03
  • 2019-09-16
  • 1970-01-01
  • 2020-08-30
  • 2020-02-20
  • 1970-01-01
  • 2020-01-16
相关资源
最近更新 更多