starwish’s diary

(GAS)Google Apps Scriptやってみた

体重や睡眠時間などの個人的なデータをGoogleSpreadsheetで管理しているが、いちいち入力するのが面倒だった。
GAS(Google Apps Script)を使えば簡単になると聞きやってみた。入力のデフォルト値はシートから取得したかったので、プロジェクト内にindex.htmlを作り、gs側で

function doGet(){
  var output = HtmlService.createTemplateFromFile('index');
  output.dflt = 58
  return output.evaluate()
}

とやると、html側で

  <form method='post' action='https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXX/exec'>
    <input type="number" name="weight" step="0.1" value="<?= dflt?>" max="65.0" />

のように変数が受け取れる。入力した値をdoPost()内でスプレッドシートを取得して

function doPost(postdata){
  var spreadsheet = SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXXXXXXX')
  var sheet = spreadsheet.getSheetByName(today.getFullYear())
  sheet.getRange(days+2,2).setValue(weight);
}

で値が書き込まれる。シートを見ているとポコッと増えるのでわかりやすい。引数2つでgetRange()を呼ぶと、そのセルが対象になる。基数が1になることに注意。