東北地方太平洋沖地震の発生に伴い、東京都内で計画停電が実施されています。 その計画停電スケジュールを有志の方々がGoogleカレンダーで公開されています。 https://sites.google.com/a/creco.net/teiden-calendar/ この計画停電スケジュールをGoogle Spreadsheetに書きだすScriptを作成しました。 http://goo.gl/RbDOM Calendar Serviceを使って、計画停電カレンダーからカレンダーデータを取得しています。 ソースコードは以下のようになっています。 function getCalendars() { var calendars = [ { "name" : "第1グループ", "address" : "[ 第1グループのカレンダーアドレス ]" }, { "name" : "第2グループ", "address" : "[ 第2グループのカレンダーアドレス ]" }, { "name" : "第3グループ", "address" : "[ 第3グループのカレンダーアドレス ]" }, { "name" : "第4グループ", "address" : "[ 第4グループのカレンダーアドレス ]" }, { "name" : "第5グループ", "address" : "[ 第5グループのカレンダーアドレス ]" } ]; calendars.forEach( function (c) { var cal = CalendarApp.openByEmailAddress(c.address); var arr = cal.getEvents(new Date(), new Date(2012,1,31)); // month -1 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(c.name); var range = sheet.getRange(5, 1, 50, 6); range.clearContent(); // remove previors data. for(var i = 0; i < arr.length; i++){ var startTime = arr[i].getStartTime(); var endTime = arr[i].getEndTime(); var startMonth = parseInt(startTime.getMonth())+1; var endMonth = parseInt(endTime.getMonth())+1; var title = arr[i].getTitle(); var status = title.match(/^(※.*?)(\s|【)/); var group = title.match(/】(.+?)\s*\//); if( status ) { if( status.length > 1 ) range.getCell(i + 1,1).setValue(status[1]); } range.getCell(i + 1,2).setValue(group[1]); range.getCell(i + 1,3).setValue( startTime.getYear() + "/" + startMonth + "/" + startTime.getDate() ); range.getCell(i + 1,4).setValue( startTime.getHours() + ":" + startTime.getMinutes() + ":" + startTime.getSeconds() ); range.getCell(i + 1,5).setValue( endTime.getYear() + "/" + endMonth + "/" + endTime.getDate() ); range.getCell(i + 1,6).setValue( endTime.getHours() + ":" + endTime.getMinutes() + ":" + endTime.getSeconds() ); } }); } ちなみに一覧表の説明に書いてありますが、Google Spreadsheetの公開データはXMLやJSONで取得できます。 これを活用すると、Google Spreadsheetをマッシュアップサービスの一部とすることもできるでしょう。 |
最新情報 >