【发布时间】:2014-02-07 15:39:28
【问题描述】:
因此,根据大量互联网调查,我设法拼凑出一个脚本,该脚本使用 Google 表格创建全天日历条目。大概有大约 450 行我想为其创建事件的内容,但是每次我运行脚本时它永远不会结束,它永远不会创建 EventId(以解决重复问题),相反,它给了我一个“超过最大执行时间”错误。
$ function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Export Events",
functionName : "exportEvents"
}];
sheet.addMenu("Calendar Actions", entries);
};
function exportEvents() {
var sheet = SpreadsheetApp.getActiveSheet();
var headerRows = 0; // Number of rows of header info (to skip)
var range = sheet.getDataRange();
var data = range.getValues();
var calId = "evsck12.com_fp4p25esvij964uhmfs51o9ar8@group.calendar.google.com";
var cal = CalendarApp.getCalendarById(calId);
for (i in data) {
if (i < headerRows) continue; // Skip header row(s)
var row = data[i];
var date = new Date(row[0]); // First column
var title = row[1]; // Second column
var id = row[3]; // Sixth column == eventId
// Check if event already exists, update it if it does
try {
var event = cal.getEventSeriesById(id);
}
catch (e) {
// do nothing - we just want to avoid the exception when event doesn't exist
}
if (!event) {
var newEvent = cal.createAllDayEvent(title, date).getId();
row[3] = newEvent; // Update the data array with event ID
}
else {
event.setTitle(title);
range.setValues(data);
}
debugger;
}
}
我的问题是:
- 如何避免此错误?如果我将数据分成几张纸,那会起作用吗?
- 在我的一生中,我无法填充 eventiD 部分......我设法在测试表上做到了,但我不能再这样做了......任何帮助都会很棒!
作为参考,我的工作表设置为 日期/标题/事件ID
谢谢!!!!
【问题讨论】:
标签: google-apps-script google-sheets google-calendar-api google-docs