こんそーるすーぷのレシピはこちら

いちおう仕事なのに趣味の人に劣って焦り

【GAS】SpreadSheetでのデータ管理を簡単にする

GoogleAppScript(以下GAS)ではGoogleSpreadSheetを使って処理のログや通信結果を残すことができます。
しかし、SpreadSheetをもっと簡単に扱えるようにできないかと思いCS_SpreadSheetというライブラリを作成しました。

中でやっていること

どこらへんが簡単になっているのかというと...

  1. SpreadSheetのファイル名とシート名を指定してSheetを返す。
  2. 該当するものがGoogleDriveになければ新規作成、場所はScriptと同じ階層に作られます。

というだけの処理をやっています。
毎回Scriptを作るたびに専用のSpreadSheetを用意したりしなくていいというわけです。

導入方法

ライブラリの追加に必要なプロジェクトキー

1PtvvZ_GesDNbwjKDC3rig95f-5jMUM0lkLRlP6bKrDZHV5Q25oy7PugW

CS_SpreadSheetの使用方法

CS_SpreadSheet.FileName = "ファイル名";
CS_SpreadSheet.SheetName = "シート名";

function myFunction() {
    //シートの取得
    var sheet = CS_SpreadSheet.GetSheet();
    if (sheet == null) return;
    
    //中身の確認
    var maxRow = sheet.getMaxRows();
    var maxColumns = sheet.getMaxColumns();
    var values = sheet.getSheetValues(1, 1, maxRow, maxColumns);
    for (var i = 0; i < values.length; i++) 
    {
        var value = value[i];
        //ここでなにか比較など...(value[0] == "title")
    }
    
    //一番下にデータを追加はこれが簡単(上の比較で存在しなければ追加的な...)
    sheet.appendRow(["title", "message", "2018/01/17 11:22:00 +900", "hogehoge"]);
}

Sheetの操作方法は公式にあるので詳しくはそちらをどうぞ
Class Sheet  |  Apps Script  |  Google Developers

活用方法

ちょっと簡単にログを残す機能としてやウェブアプリケーションでエラーが出ている時のログツールとして活躍すると思います。

今回これを作った経緯として、
Webhookで受け取った内容をTwitterに投稿するために作りました。
受信データがどんな形式なのかのログツールとしてと、送信済みのデータを残しておくために使っています。

GASでSNS投稿については過去にまとめていますのでそちらをどうぞ。

Chatworkに投稿

madgenius.hateblo.jp