将Google或iCal日历数据导入Google电子表格 [英] Import Google or iCal calendar data into a google spreadsheet

查看:129
本文介绍了将Google或iCal日历数据导入Google电子表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在google电子表格中记录谷歌日历条目以进一步处理数据。我有以下代码,我从其他来源借用:

 函数importEvents(){
var startOfDay = new日期();
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; //编辑
(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-1);

$ / code>

使用.getRange()函数获取有关数据高度不正确的错误如果你正在设置一个范围的值,你的范围必须与列和行中的values数组的大小相匹配。



而不是以下行:

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

试试这个:

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


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

解决方案

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

这篇关于将Google或iCal日历数据导入Google电子表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆