指定した日付から1か月分の条件にあったスケジュールをグーグルカレンダーから取得して、スプレッドシートに挿入したいのですが、なぜか余分な空白まで入ってしまいます。
可能でしたら空白の部分を詰めて表示させたいです。
原因と解決策をご教示いただけますでしょうか。
function appendMenu(){ // メニューの追加 var menu = [ {name: '取得する', functionName: "getEvents"}, {name: '削除する', functionName: "removeRow"} ]; SpreadsheetApp.getActiveSpreadsheet().addMenu("予定を取得", menu); } function getEvents(){ var calendar = CalendarApp.getCalendarById('ID'); var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var range = sheet.getRange("K3"); var value = range.getValue(); var date = value; var from= new Date(date); var end = new Date(date); end.setMonth(end.getMonth()+1); var events = calendar.getEvents(from, end); var rowIndex = 0; for (var i = 0; i < events.length; i++) { var title = events[i].getTitle(); var startTime = events[i].getStartTime(); var endTime = events[i].getEndTime(); var duration = (endTime - startTime) /(1000*60)/(60); var detail = events[i].getDescription(); var location = events[i].getLocation(); if (statTime == ""){ continue; } Logger.log(title); Logger.log(startTime); if(title == "条件1"||title =="条件2"||title=="条件3"){ sheet.getRange('B'+(rowIndex+40)).setValue(startTime).setNumberFormat('YYYY/MM/dd'); sheet.getRange('C'+(rowIndex+40)).setValue(duration); rowIndex = rowIndex+1; } } function removeRow() { //アクティブシートを取得 var sheet=SpreadsheetApp.getActiveSheet(); sheet.getLastRow(); // 最終行までループで回す for(var row = 1; row <= sheet.getLastRow(); row++) { var cell = sheet.getRange(row, 1); if(cell.isBlank()){ sheet.deleteRow(row); row-=1; } } } }
if (statTime == ""){
continue;
をコメントアウトした場合
※1/30から下に必要ないデータまで取ってきてしまう。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。