无法使用Google应用程序脚本将数据从Google日历提取到电子表格
问题描述:
我正在尝试将数据从Google日历提取到电子表格。无法使用Google应用程序脚本将数据从Google日历提取到电子表格
似乎没有语法错误,程序说提取完成。但是我只收到“完成”消息,并且在电子表格中看不到任何结果。
日历有多个事件,所以它不是日历问题。
有人能帮我弄清楚发生了什么事吗?谢谢。
function getRoom2MonthEvent()
{
var endDate = new Date();
var myCals = CalendarApp.getCalendarById('[email protected]');
var myRow = 2
var mySheet = SpreadsheetApp.getActiveSheet();
var startDate = new Date();
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
startDate.setDate(0);
endDate.setHours(0);
endDate.setMinutes(0);
endDate.setSeconds(0);
endDate.setMonth(endDate.getMonth() + 1);
endDate.setDate(1);
for (i in myCals)
{
var myCals = myCals[ i ];
var myEvents = myCal.getEvents(startDate, endDate);
mySheet.getRange(myRow, 1).setValue(myCal.getName());
if (myEvents.length > 0)
{
for (j = 0;
i < myEvents.length;
i++)
{
var myEvent = myEvents[ i ];
mySheet.getRange(myRow, 2).setValue(myEvent.getTitle());
mySheet.getRange(myRow, 3).setValue(myEvent.getStartTime());
mySheet.getRange(myRow, 4).setValue(myEvent.getEndTime());
myRow++;
}
}
}
Browser.msgBox("Done");
}
答
由于乔希·道森mentionned它的CalendarApp.getCalendarById()方法,你的迭代为没有意义的,除非你从多个日历数据。
您可以使用CalendarApp.getDefaultCalendar()或CalendarApp.getCalendarByName()方法来获取所需的确切日历。
否则,如果你想操纵多个日历,你可以使用CalendarApp.getAllCalendars()方法。在这种情况下,您必须是所有者或订阅您要操作的日历。提示:为避免您需要确认何时使用Browser.msgBox()方法,您可以使用Spreadsheet.toast()方法,该方法会在窗口的右下方弹出一条消息。
'getCalendarById'返回一个日历对象,所以'for(myCals)'中没有任何东西可以迭代。 –
如果有任何它遍历日历的属性键。 myEvents将会被定义并且脚本终止。 –