2017-04-09 61 views
0

我正在嘗試將數據從Google日曆提取到電子表格。無法使用Google應用程序腳本將數據從Google日曆提取到電子表格

似乎沒有語法錯誤,程序說提取完成。但是我只收到「完成」消息,並且在電子表格中看不到任何結果。

日曆有多個事件,所以它不是日曆問題。

有人能幫我弄清楚發生了什麼事嗎?謝謝。

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(myCals)'中沒有任何東西可以迭代。 –

+0

如果有任何它遍歷日曆的屬性鍵。 myEvents將會被定義並且腳本終止。 –

回答

0

由於喬希·道森mentionned它的CalendarApp.getCalendarById()方法,你的迭代爲沒有意義的,除非你從多個日曆數據。

您可以使用CalendarApp.getDefaultCalendar()CalendarApp.getCalendarByName()方法來獲取所需的確切日曆。
否則,如果你想操縱多個日曆,你可以使用CalendarApp.getAllCalendars()方法。在這種情況下,您必須是所有者或訂閱您要操作的日曆。提示:爲避免您需要確認何時使用Browser.msgBox()方法,您可以使用Spreadsheet.toast()方法,該方法會在窗口的右下方彈出一條消息。

相關問題