无法将Google表格推送到日历

时间:2014-12-16 00:49:09

标签: google-apps-script google-sheets google-calendar-api

我很难让这段代码发挥作用。我经常学习,但我非常喜欢初学者。

这是脚本:

  

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

//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++;   }

这里有一个假人的链接:

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

1 个答案:

答案 0 :(得分:0)

代码错误很少:

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

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

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

  3. 在var values = range.sheet.getRange(1,1,sheet.getLastRow(),25).getValues();
  4. 这里是代码:

     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
    }
     }
    }
    

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