体重や睡眠時間などの個人的なデータを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になることに注意。