将Google或iCal日历数据导入Google电子表格

问题描述:

我正在尝试在Google电子表格中记录Google日历条目以进一步处理数据。我有以下的代码,这是我从其他渠道借:与.getRange()函数将Google或iCal日历数据导入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' + (lr)).setValues(eventarray); 

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

得到错误有关数据

如果你在一个范围内设定值的高度不正确,你的范围必须与列和行中值列表的大小相匹配。

取而代之的是以下行:

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

试试这个:

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

感谢teatimer! – rrg 2015-09-25 19:32:08