Fork me on GitHub

Gas 外部データをspreadsheetに自動収集する

  • Mar 24, 2011

categoryプラグインは存在しません。

概要

一定時間毎にJSONなどで取得したデータをGoogle DocsのSpreadsheetに追記していく方法です。

環境

  • Google Docs Spreadsheet (2011.3時点)

手順

Spreadsheetを用意

Google Docs上で通常通りSpreadsheetを用意します。

収集用の関数を用意

  • [Tools]-[Script]-[Script Editor]を選んで、スクリプトエディタを開きます。
  • データ収集関数を記述します。以下はその例です。
function fetch_json() \{
 var url="http://tepco-usage-api.appspot.com/latest.json";
 var result= UrlFetchApp.fetch(url);
 var obj = Utilities.jsonParse(result.getContentText());

ここまでで、JSONで取得したデータをオブジェクトに変換しています。

 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var cell = sheet.getRange('a1');
 var index = 0;
 cell.offset(index, 0).setValue(obj.entryfor);
 cell.offset(index, 1).setValue(obj.year);
 cell.offset(index, 2).setValue(obj.month);
 cell.offset(index, 3).setValue(obj.day);
 cell.offset(index, 4).setValue(obj.hour);
 cell.offset(index, 5).setValue(obj.usage);
 cell.offset(index, 6).setValue(obj.capacity);
 cell.offset(index, 7).setValue(obj.saving);
\}

このあたりで、取得したデータをシート内のセルに入力しています。重複を避ける場合は、入力する前にシートをスキャンするなどの工夫が必要です。

トリガーを設定

  • [Triggers]-[Current Script's triggers]を選んで、新しいトリガを設定します。
  • 実行する上記関数名と、実行間隔を指定してSaveボタンを押すと、一定時間毎に収集関数が実行されるようになります。
  • 必要に応じて、Twitterなどへの自動投稿もここから行う。 </ul>

    commentプラグインは存在しません。