2

我希望有人可以帮助我从此处的数据库示例中读取 JDBC 脚本... https://developers.google.com/apps-script/jdbc ...与我的数据库一起使用。

    function foo() {
      var conn = Jdbc.getConnection("jdbc:mysql://<host>:3306/<instance>", "user", "password");
      var stmt = conn.createStatement();
      stmt.setMaxRows(100);
      var start = new Date();
      var rs = stmt.executeQuery("select * from clients");

      var doc = SpreadsheetApp.getActiveSpreadsheet();
      var cell = doc.getRange('a1');
      var row = 0;
      while(rs.next()) {
        cell.offset(row, 0).setValue(rs.getString(1));
        cell.offset(row, 1).setValue(rs.getString(2));
        cell.offset(row, 2).setValue(rs.getString(3));
        cell.offset(row, 3).setValue(rs.getString(4));
        row++;
      }
      rs.close();
      stmt.close();
      conn.close();
      var end = new Date();
      Logger.log("time took: " + (end.getTime() - start.getTime()));
    }

我插入了我的服务器和用户信息,并将 select * 语句更改为我的数据库中的表“clients”。连接成功,但出现以下错误...

TypeError:无法调用 null 的方法“getRange”。(第 9 行)

我的数据库中的“客户”表具有以下列...

     id, clientname, clientcontact, clientphone, clientnote

有人可以帮助我了解示例脚本中需要更改哪些内容才能与我的客户表一起使用吗?到目前为止,我还不是程序员......但我想让它工作并将其用作模板,将数据从 mysql 获取到谷歌电子表格中,这样我就可以在我的谷歌网站上发布表格。

谢谢!

4

1 回答 1

1

该脚本应该从电子表格容器中运行,或者至少可以访问电子表格以写入其结果。

所以你有两种可能性:

  1. 在电子表格脚本编辑器中复制/粘贴您的脚本并从那里运行它。

  2. 用 openbyId(spreadsheet id) 替换电子表格App.getActive (有关更多信息,请参阅其他帖子)您确实处于几乎相同的情况,因为您的脚本与其使用的电子表格没有直接关系。

于 2012-10-22T05:27:23.430 回答