2017-04-09 9 views
0

Googleカレンダーからスプレッドシートにデータを抽出しようとしています。googleカレンダーからGoogle Appsスクリプトを使用してスプレッドシートにデータを抽出できない

構文エラーはないようで、プログラムは抽出が完了したことを示します。しかし、私は「完了」というメッセージしか表示せず、スプレッドシートに結果が表示されません。

カレンダーには複数のイベントがあり、カレンダーの問題ではありません。

誰かが何が起こっているのか把握するのに役立つことができますか?ありがとうございました。

function getRoom2MonthEvent() 
{ 
    var endDate = new Date(); 
    var myCals = CalendarApp.getCalendarById('[email protected]'); 
    var myRow = 2 
    var mySheet = SpreadsheetApp.getActiveSheet(); 
    var startDate = new Date(); 


    startDate.setHours(0); 
    startDate.setMinutes(0); 
    startDate.setSeconds(0); 
    startDate.setDate(0); 

    endDate.setHours(0); 
    endDate.setMinutes(0); 
    endDate.setSeconds(0); 
    endDate.setMonth(endDate.getMonth() + 1); 
    endDate.setDate(1); 

    for (i in myCals) 
    { 
     var myCals = myCals[ i ]; 
     var myEvents = myCal.getEvents(startDate, endDate); 


     mySheet.getRange(myRow, 1).setValue(myCal.getName()); 

     if (myEvents.length > 0) 
     { 
      for (j = 0; 
        i < myEvents.length; 
        i++) 
      { 
       var myEvent = myEvents[ i ]; 


       mySheet.getRange(myRow, 2).setValue(myEvent.getTitle()); 
       mySheet.getRange(myRow, 3).setValue(myEvent.getStartTime()); 
       mySheet.getRange(myRow, 4).setValue(myEvent.getEndTime()); 
       myRow++; 
      } 
     } 
    } 

    Browser.msgBox("Done"); 
} 
+1

'getCalendarById'は単一のカレンダーオブジェクトを返します。したがって、for(i in myCals)には反復処理がありません。 –

+0

何かがある場合は、カレンダーのプロパティーキーを反復処理します。 myEventsは未定義となり、スクリプトは終了します。 –

答えて

0

あなたが複数のカレンダーからデータを取得しない限り、ジョシュ・ドーソンは、ノーポイントとして、CalendarApp.getCalendarById()メソッド、あなたの反復を、それをmentionnedあります。

正確なカレンダーを取得するには、CalendarApp.getDefaultCalendar()またはCalendarApp.getCalendarByName()の方法を使用できます。
複数のカレンダーを操作する場合は、CalendarApp.getAllCalendars()メソッドを使用できます。この場合、操作したいカレンダーを所有者または購読している必要があります。

ヒント:Browser.msgBox()メソッドが使用されているかどうかを確認する必要がないように、代わりにSpreadsheet.toast()メソッドを使用すると、ウィンドウの右下にメッセージが表示されます。

関連する問題