Google apps script 无法将Google工作表推送到日历
我很难让这个代码正常工作。我学了很多,但我是个初学者 以下是脚本: //将新事件推送到日历函数pushToCalendar{ //电子表格变量 var sheet=电子表格app.getActiveSheet; var范围=表。getRange1,1,5,25; var值=range.getValuesGoogle apps script 无法将Google工作表推送到日历,google-apps-script,google-sheets,google-calendar-api,Google Apps Script,Google Sheets,Google Calendar Api,我很难让这个代码正常工作。我学了很多,但我是个初学者 以下是脚本: //将新事件推送到日历函数pushToCalendar{ //电子表格变量 var sheet=电子表格app.getActiveSheet; var范围=表。getRange1,1,5,25; var值=range.getValues //calendar variables var calendar = CalendarApp.getCalendarById('xxxx') var numValues = 0;
//calendar variables
var calendar = CalendarApp.getCalendarById('xxxx')
var numValues = 0; for (var i = 0; i < values.length; i++) {
//check to see if name and type are filled out - date is left off because length is "undefined"
if ((values[i][0].length > 0) && (values[i][2].length > 0)) {
//check if it's been entered before
if (values[i][16]!= 'y') {
//create event https://developers.google.com/apps-script/class_calendarapp#createEvent
var newEventTitle = 'values[i][1]' + ' ' + values[i][15] + ' - ' + values[i][3] + ' - ' + values[i][10] + ' Driver: Needed';
var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][8]);
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(i+2,16).setValue('y');
sheet.getRange(i+2,17).setValue(newEventId);
} //could edit here with an else statement
}
numValues++; }
这里有一个到假人的链接:
代码中几乎没有错误: 1//将新事件推送到日历函数pushToCalendar中。由于您在注释中包含了函数语句,所以整个语句都被注释掉了 For循环应该从i=1开始。这是因为,当取i=0时,这被称为列的名称行 sheet.getRangei+2,16应更改为sheet.getRangei+1,16 在var值中=range.sheet.getRange1,1,sheet.getLastRow,25.getValues; 代码如下:
function pushToCalendar() {
//spreadsheet variables
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1,1,5,25);
var values = range.getValues();
Logger.log(values.length);
//calendar variables
var calendar = CalendarApp.getCalendarById('your calendar ID')
var numValues = 0;
for (var i = 1; i < values.length; i++) {
var check = values[i][0];
//check to see if name and type are filled out - date is left off because length is "undefined"
if ((values[i][0]) && (values[i][2].length > 0)) {
//check if it's been entered before
if (values[i][16]!= 'y') {
//create event https://developers.google.com/apps script/class_calendarapp#createEvent
var newEventTitle = 'values[i][1]' + ' ' + values[i][15] + ' - ' + values[i][3] + ' - ' + values[i][10] + ' Driver: Needed';
Logger.log(i);
Logger.log(values[i][8]);
var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][8]);
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(i+1,16).setValue('y');
sheet.getRange(i+1,17).setValue(newEventId);
} //could edit here with an else statement
}
}
}
我尝试了上述代码,并能够在我的日历中创建活动。如果您有任何问题,请告诉我谢谢-在您的帮助下,我能够使其正常工作!非常感谢!