[Google][Developer][Day][2011] Google Apps Scriptのソースコード
http://code.google.com/intl/ja/googleapps/appsscript/guide.html は、
Googleスプレッドシートやその他のGoogleプロダクトをJavaScriptを用いて制御する仕組みだそうです。
Excelのマクロのようなものでしょうか。
JavaScriptで制御できるというのはいいですね。
問題は、JSONで提供されている都市ごとの日別供給電力と最大消費電力を
Google Apps Scriptでスプレッドシートに展開してください、というものです。
私は、以下の3つの関数を定義して回答しました。
- GET_JSON
- SETUP_SHEET
- SETUP_SHEETS
下記がコードです。
function GET_JSON() { var response = UrlFetchApp.fetch("http://gdd-2011-quiz-japan.appspot.com/apps_script/data?param=4627646934474507351"); var jsonString = response.getContentText(); var jsonObj = Utilities.jsonParse(jsonString); return jsonObj; } function SETUP_SHEET(json) { var usage = 0; var percentage = 0; var dataCount = 1; var city = json.city_name; var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(city); data = json.data; sheet.setName(city); for(var powerIdx in data) { capacity = data[powerIdx].capacity; usage = data[powerIdx].usage; percentage = usage / capacity * 100; sheet.getRange(dataCount, 1).setValue(capacity); sheet.getRange(dataCount, 2).setValue(usage); sheet.getRange(dataCount, 3).setValue(percentage + '%'); dataCount += 1; } } function SETUP_SHEETS() { var json = GET_JSON(); for(var cityIdx in json) { SETUP_SHEET(json[cityIdx]); } }
きちんとスクリプト作成・編集用のツールが用意されていて、スクリプトのデバッグ実行も
できるというスグレモノでした。
# FirefoxだとGoogle Docsが動作しなかったのはなんでだろう・・・。