我想在谷歌电子表格中保留谷歌日历条目的记录,以进一步处理数据。我有以下代码,我从其他来源借用:
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工作表中的现有条目下添加新导入的条目。我无法解决这个问题,因为我的编程技巧有限(同样,上面的代码是实现其他地方提供的解决方案的结果)。
任何帮助将不胜感激!
编辑:根据Lothar的建议,我尝试了其他方法:
events_sheet.getRange("A"+(lr+1)+":D"+(lr+i)).setValues(eventarray);
它有效!另外,非常特别地感谢任何投票给-1以获得深入挖掘的激励。
干杯!
答案 0 :(得分:3)
尝试重写此行,以便
events_sheet.getRange('A1:D' + (lr)).setValues(eventarray);
如果您尝试将新(事件)数据附加到电子表格的末尾。否则,您将把数据放在与您获得的事件数相对应的行中。