我可以使用Google工作表作为移动应用程序的数据源吗

时间:2020-10-16 07:43:24

标签: flutter dart

使用Dart语言和Flutter,是否可以使用Dart / Flutter将保存在Google表格中的数据用作移动应用程序的源数据,而无需下载文件的离线副本?

1 个答案:

答案 0 :(得分:2)

是的,可以执行以下步骤:

  1. 在Google表格中:
  • 使用“文件”->“发布到网络”,将正在考虑的工作表发布为csv文件,请确保选择“进行更改后自动重新发布”选项。
  • 复制googleSheets提供的用于csv连接的链接

enter image description here

  1. 在Flutter / Dart中,使用以下代码:
  • 使用import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Save") public class SaveMe extends HttpServlet { private static final long serialVersionUID = 1L; private Connection makeCon; private Statement stmt; public void init(ServletConfig config) throws ServletException { JdbcCon jdbcCon = new JdbcCon(); makeCon = jdbcCon.makeCon(); try { stmt = makeCon.createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse res) throws ServletException, IOException { String name = request.getParameter("name"); res.setContentType("text/html"); PrintWriter out = res.getWriter(); String sql = "insert into users (name) Values('" + name + "')"; System.out.println(sql); try { int result = stmt.executeUpdate(sql); if (result > 0) { out.print("Inserted"); } else out.print("Not Inserted"); } catch (SQLException e) { } } } 从上面生成的csv url中读取数据
  • 将返回的字符串转换为final request = await HttpClient().getUrl(Uri.parse( 'https://docs.google.com/spreadsheets/d/e/2PACX-1vQvf9tp4-fETDJbC-HRmRKvVFAXEAGO4lrYPpVeiYkB6nqqXdSs3CjX0eBMvjIoEeX9_qU6K2RWmzVk/pub?gid=0&single=true&output=csv'));的csv格式
  • 使用rowsAsListOfValues = const CsvToListConverter().convert(csvString);
  • 显示数据
DataTable(columns: const <DataColumn>[],rows: List.generate(rowsAsListOfValues.length - 1, (index) {return DataRow(cells: <DataCell>[DataCell())],