首页 文章

无法将Google表格推送到日历

提问于
浏览
0

我正在度过这段代码的可怕时机 . 我学到了很多,但我非常喜欢初学者 .

这是脚本:

//将新事件推送到日历函数pushToCalendar(){//电子表格变量var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1,1,5,25); var values = range.getValues(); //日历变量
var calendar = CalendarApp.getCalendarById('xxxx')

var numValues = 0; for(var i = 0; i <values.length; i){
//检查名称和类型是否已填写 - 由于长度为“未定义”,因此保留日期
if((values [i] [0] .length> 0)&&(values [i] [2] .length> 0)){

//检查之前是否输入过
if(values [i] [16]!='y'){

//创建活动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]);

//获取ID
var newEventId = newEvent.getId();

//标记为已输入,输入ID
sheet.getRange(i 2,16) . setValue('y');
sheet.getRange(i 2,17) . setValue(newEventId);

} //可以使用else语句在这里编辑
}
numValues; }

这是一个虚拟的链接:

https://docs.google.com/spreadsheets/d/1gBXtHjEhnNSEkJYq2upCWtwkj1ZLWiUYv6KSuMH8Nds/edit?usp=sharing

1 回答

  • 0

    代码错误很少:

    1.将新事件推送到日历函数pushToCalendar() . 当您在评论中包含函数语句时,整个语句已被注释掉 .

    • For循环应从i = 1开始 . 这是因为,当你取i = 0时,这被称为列行的名称 .

    • sheet.getRange(i 2,16)应更改为sheet.getRange(i 1,16) .

    • 在var values = range.sheet.getRange(1,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
    }
     }
    }
    

    我尝试了上面的代码,并能够在我的日历中创建活动 . 如果您有任何疑问,请告诉我

相关问题