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();
なかなかいい感じで、コードもすっきり書けたので今後も活用していこうと思います。
この記事が気に入ったらサポートをしてみませんか?