我正在尝试将事件从工作表添加到日历中,我总是在最后一行代码中出错
function addevents() {
var ss = SpreadsheetApp.getActiveSheet();
var lr = ss.getLastRow();
var cal = CalendarApp.getCalendarById("maytavbus.com_jm741jospf0kv3f2se2kpo88i0@group.calendar.google.com")
var data = ss.getRange("A1:C" + lr).getValues();
for(var i = 0; i < data.length; i++) {
cal.createAllDayEvent(data[i][0], data[i][1], data[i][2])
}
}我试着这样做,它仍然告诉我,开始必须在结束之前,在表中是这样的
function addevents() {
var ss = SpreadsheetApp.getActiveSheet();
var lr = ss.getLastRow();
var cal = CalendarApp.getCalendarById("maytavbus.com_jm741jospf0kv3f2se2kpo88i0@group.calendar.google.com");
var data = ss.getRange("A1:C" + lr).getValues();
for(var i=0; i < data.length; i++) {
var title = data[i][0];
var startDate = new Date(data[i][1]);
var endDate = new Date(data[i][2]);
cal.createAllDayEvent(title, startDate, endDate);
}
}以下是工作表中的数据:
title startDate endDate
FAS8-school closed 11/1/2019 0:00:00 11/1/2019 0:00:00
0647-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00
SEM1-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00
SME2-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00
SMC3-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00
SY2-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00
SY5-school closed 11/5/2019 0:00:00 11/5/2019 0:00:00发布于 2019-10-31 15:07:33
您可能想要尝试:
cal.createAllDayEvent(data[i][0], new Date(data[i][1]), new Date(data[i][2]));
我猜最后两个是日期。
发布于 2019-10-31 23:31:30
正如我在@Cooper answer上的评论中所看到的,startDate和endDate是相同的。这就是你得到错误Event start date must be before event end date. (line 11, file "Code")的原因。
如果您希望事件仅持续一天,则应仅提供一个日期,如here中所示。仅当事件持续一天以上时,才应使用createAllDayEvent(title, startDate, endDate)。
如果某些事件只跨越一天,而另一些则跨越多天,则可以添加比较两个日期的条件,以便根据该条件使用不同的方法。
因此,您可以尝试更改此设置:
for(var i=0; i < data.length; i++) {
var title = data[i][0];
var startDate = new Date(data[i][1]);
var endDate = new Date(data[i][2]);
cal.createAllDayEvent(title, startDate, endDate);
}要这样做:
for(var i = 0; i < data.length; i++) {
var title = data[i][0];
var startDate = new Date(data[i][1]);
var endDate = new Date(data[i][2]);
if(startDate.getFullYear() == endDate.getFullYear() && startDate.getMonth() == endDate.getMonth() && startDate.getDate() == endDate.getDate()) {
cal.createAllDayEvent(title, startDate);
} else {
cal.createAllDayEvent(title, startDate, endDate);
}
}我希望这能对你有所帮助。
https://stackoverflow.com/questions/58633949
复制相似问题