非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Google スプレッドシートからデータベース(Fusion Tables)を制御する(SELECTとINSERT)

      2016/06/15


前回は、Googleスプレッドシートからデータベース(Fusion Tables)を制御するための設定方法を書きました。今回はいよいよスプレッドシート側からGoogle Apps Scriptを使って制御していきたいと思います。

0

まずその前におさらい

前のブログを読んでいない方は以下の記事を読んでください。

まずは、Googleスプレッドシートのマクロ機能(Google Apps Script)の解説です。プログラムの記述方法はこちらを参考にしてください。

Google Docsのマクロ機能Google Apps Scriptをためしてみた

Googleドライブ上でデータベースを使う方法です。Fusion Tablesというデータベースアプリをインストールする必要があります。

Googleドライブでデータベースが使えるという衝撃

最後に、スプレッドシート側からデータベースにアクセスするための設定方法です。

Google スプレッドシートからデータベース(Fusion Tables)を制御する(準備編)

 

データベーステーブル

Fusion Tablesでこんなテーブルを作りました。DBをスプレッドシートからアクセスするわけです。

7

 

テーブル名の取得

Fusion TablesのURLに、docidというパラメータがありますので、その値を控えておきます。実はこれがテーブル名になります。

1

 

SELECT構文

データベースを読み込む場合は、以下のような構文です。

function getDB(){
  var mySheet = SpreadsheetApp.getActiveSheet();
  var docid = “1KF…..E3B”; //urlに含まれるdocid
  var sql = “SELECT * FROM “ + docid + ” ORDER BY ID”;
  var result = FusionTables.Query.sqlGet(sql);
  for( var i=0; i<result.rows.length; ++i ){
    mySheet.getRange(“A” + (i+2)).setValue(result.rows[i][0]);
    mySheet.getRange(“B” + (i+2)).setValue(result.rows[i][1]);
    mySheet.getRange(“C” + (i+2)).setValue(result.rows[i][2]);
  }
}

 

以下の通り読込は成功しました。

8

 

INSERT構文

INSERT分はこの通り

function insert(){
  var docid = “KF…..E3B”; //urlに含まれるdocid
  var sql = “INSERT INTO “ + docid + ” (ID, NAME, AGE) VALUES (4, ‘池田’, 33)”;
  FusionTables.Query.sql(sql);
}

 

こちらが挿入後に読み込んできた状態。

aa

 

ということで、DB読込と挿入のやり方を紹介しました。次回はUPDATEとDELETE文です。ちょっとひとクセあるみたいです。

 

 

 - Google Apps Script, Google Dirve