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からGoogleスプレッドシートにデータを取得し、Googleサイトでシートを公開できるようにしたいと考えています。

ありがとう!

4

1 に答える 1

1

このスクリプトは、スプレッドシート コンテナーから実行するか、少なくともスプレッドシートにアクセスして結果を書き込む必要があります。

したがって、2 つの可能性があります。

  1. スクリプトをコピーしてスプレッドシート スクリプト エディタに貼り付け、そこから実行します。

  2. スクリプトが使用するスプレッドシートに直接関連していないため、spreadsheetApp.getActive を openbyId(spreadsheet id) に置き換えます (詳細については、この他の投稿を参照してください)。

于 2012-10-22T05:27:23.430 に答える