【问题标题】:Trouble getting Google Sheets to Push to Calendar无法让 Google 表格推送到日历
【发布时间】:2015-02-14 05:49:58
【问题描述】:

我很难让这段代码正常工作。我学到了很多东西,但我还是个初学者。

这是脚本:

//将新事件推送到日历函数 pushToCalendar() { //电子表格变量
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1,1,5,25);
var 值 = 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

【问题讨论】:

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


    【解决方案1】:

    代码错误很少:

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

    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();

    代码如下:

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

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

    【讨论】:

    • 谢谢 - 在您的帮助下,我能够让它工作!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多