Import Google or iCal calendar data into a google spreadsheet

左心房为你撑大大i 提交于 2019-12-25 04:23:15

问题


I am trying to keep a record of google calendar entries in a google spreadsheet to further process the data. I have the following code, which I borrowed from other sources:

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);
}

Getting errors with the .getRange() function regarding incorrect height of data


回答1:


If you're setting values on a range, your range has to match the size of the values array in both columns and rows.

Instead of the following line:

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

Try this:

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


来源:https://stackoverflow.com/questions/28466885/import-google-or-ical-calendar-data-into-a-google-spreadsheet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!