見出し画像

Google Apps ScriptでSQLライクにSheetのデータを扱う

Google Apps Scriptでアプリケーションを作成していると、データベースとしてGoogle Sheetを使うことはよくありますので、以下のようなコードを書いてif文の条件分岐でフィルターかけて必要なデータを取得したりすると思いますが、バックエンドの開発に慣れている人からすると「SQLが使えたらいいのに」と思うことがあるかもしれません。

  let sheet = SpreadsheetApp.getActiveSheet(); 
  let values = sheet.getDataRange().getValues();

私も先日社内業務で利用するアプリケーションを作っていた時にいくつかのシートからデータを持ってきてごにょごにょしてまたシートに書き込むという処理をかいていたのですが、コードが冗長になりがちでなんとなからないものかとGithubで探していたところ面白いライブラリを見つけました。

YIONOというものでGithubにあるコードをコピーして自分のファイルにそのままペーストすると、GASからSQLライクな方法でシートのデータを取得できるようになります。

SELECTだとこういう感じで、データは2次元配列で返ってきます。

let SQL = new gSQL();
let data = SQL.DB('MY_DB_ID').TABLE('MY_TABLE_NAME').SELECT(['column_name1', 'column_name2']).WHERE('argument1','comparaison','argument2').AND('argument1','comparaison','argument2').getVal();

INSERT文やUPDATE文はこのような感じです。

let SQL = new gSQL();
SQL.DB('MY_DB_ID').TABLE('MY_TABLE_NAME').INSERT(['value1', 'value2', ....]);
SQL.DB('DB_ID').TABLE('TABLE_NAME').UPDATE(['COLUMN_NAME1', 'COLUMN_NAME2').VALUES(['VALUE_FOR_COLUMN1','VALUE_FOR_COLUMN2').setVal();

なかなかいい感じで、コードもすっきり書けたので今後も活用していこうと思います。

この記事が気に入ったらサポートをしてみませんか?