GDD2011(DevQuiz)の「Google Apps Script」のスクリプトを晒してみる

今回のDevQuizで一番簡単だったのが「Apps Script」だと思っています。
先ほど締め切りになったので、その回答を晒してみます。

function init() {
  var response = UrlFetchApp.fetch("http://gdd-2011-quiz-japan.appspot.com/apps_script/data?param=-7582298231838173468");
  var city = Utilities.jsonParse(response.getContentText());
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // 全シートを削除
  var sheets = ss.getSheets();
  ss.insertSheet();
  var ssName = ss.getActiveSheet().getName();
  for(var i in sheets) {
    ss.setActiveSheet(sheets[i]);
    ss.deleteActiveSheet();
  }
  
  // データを設置
  for(var i in city) {
    ss.insertSheet(city[i].city_name);
    var sheet = ss.getActiveSheet();
    for(var j in city[i]['data']) {
      var data = city[i]['data'][j];
      sheet.getRange("A" + (parseInt(j) + 1)).setValue(data.capacity);
      sheet.getRange("B" + (parseInt(j) + 1)).setValue(data.usage);
      sheet.getRange("C" + (parseInt(j) + 1)).setValue(Math.floor((data.usage / data.capacity) * 10000) / 100 + '%');
    }
  }
  
  // 不要なシートを削除
  ss.setActiveSheet(ss.getSheetByName(ssName));
  ss.deleteActiveSheet();
}

たぶん、不要なシートを削除する処理は無くても良いと思うんですが、気になったので自動化しておきました。

※きっとこのコードが最初で最後のGoogle Apps Scriptだと思います…Googleごめんね。

コメントは受け付けていません。