我正在尝试将数据从Google日历提取到电子表格。
似乎没有语法错误,程序说提取已完成。但我只收到消息“完成”,我在电子表格上看不到任何结果。
日历有多个事件,所以这不是日历问题。
有人可以帮我弄清楚发生了什么吗?谢谢。
function getRoom2MonthEvent()
{
var endDate = new Date();
var myCals = CalendarApp.getCalendarById( 'example@gmail.com' );
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" );
}
答案 0 :(得分:0)
正如Josh Dawson所提到的,CalendarApp.getCalendarById()方法,你的迭代没有任何意义,除非你从多个日历中获取数据。
您可以使用CalendarApp.getDefaultCalendar()或CalendarApp.getCalendarByName()方法获取所需的确切日历。
否则,如果要操作多个日历,可以使用CalendarApp.getAllCalendars()方法。在这种情况下,您必须是所有者或订阅您想要操作的日历。
提示:为了避免您需要确认何时使用Browser.msgBox()方法,您可以使用Spreadsheet.toast()方法,这将在窗口的右下方弹出一条消息。