0

我試圖在Google電子表格中記錄谷歌日曆條目以進一步處理數據。我有以下的代碼,這是我從其他渠道借:將谷歌日曆數據導入到現有的谷歌電子表格中

function importEvents(){ 
    var startOfDay = new Date(); 
     startOfDay.setUTCHours(0); 
     startOfDay.setMinutes(0); 
     startOfDay.setSeconds(0); 
     startOfDay.setMilliseconds(0); 
    var endOfDay = new Date(startOfDay.getTime() + 24 * 60 * 60 * 1000); 

    var Calendar = CalendarApp.getCalendarById("[calendarIDhere]"); 
    var events = Calendar.getEvents(startOfDay, endOfDay) 
    var events_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ImportedEvents"); 
    var lr = events_sheet.getLastRow(); 

    var eventarray = new Array(); 

    var i = 0; // edited 
    for (i = 0; i < events.length; i++) { 
     line = new Array(); 
     line.push(events[i].getTitle()); 
     line.push(events[i].getDescription()); 
     line.push(events[i].getStartTime()); 
     line.push(events[i].getEndTime()); 
     eventarray.push(line); 
    } 

    events_sheet.getRange('A1:D' + (i)).setValues(eventarray); 

    var l = events_sheet.getLastRow(); 
    var m = events_sheet.getMaxRows(); 
    events_sheet.deleteRows(l+1,m-l); 
} 

出於某種原因,我每次導入了一天的時間條目,幾個空行添加到ImportedEvents片。這就是爲什麼我刪除工作表末尾的空行。

我想要做的就是讓這個腳本在ImportedEvents表單的現有條目下追加新的導入條目。由於我的編程技能有限,我無法弄清楚這一點(再次,上面的代碼是實現其他地方提供的解決方案的結果)。

任何幫助將不勝感激!

編輯:基於洛薩的建議,我想別的東西:

events_sheet.getRange("A"+(lr+1)+":D"+(lr+i)).setValues(eventarray); 

和它的工作!此外,非常特別的感謝誰投票-1爲刺激深入挖掘。

乾杯!

回答

3

請嘗試重寫此行,

events_sheet.getRange('A1:D' + (lr)).setValues(eventarray); 

如果你試圖在新的(事件)的數據添加到電子表格的末尾。否則,您會將數據放入與您獲得的事件數相對應的行中。

+2

Thanks Lothar!我試過你的建議,但我得到以下錯誤「不正確的範圍高度,是16,但應該是26」。我試圖在第26行追加16條記錄。因此,看看getRange(),我需要完成的是讀取** getRange('A27:D'+(i))**,** i **是進口活動的數量。 –