当前位置: 首页 > 知识库问答 >
问题:

无法将Google工作表推送到日历

焦兴为
2023-03-14

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

这是剧本:

//将新事件推送到日历函数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个答案

单于亮
2023-03-14

代码中几乎没有错误:

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

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

sheet.get范围(i 2,16)应改为sheet.get范围(i 1,16)。

代码如下:

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

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

 类似资料:
  • 是否有一种方法可以扫描多个Google工作表,从键上的主工作表中找到匹配项,并在适用的情况下更新Google工作表中的单元格? 例如,下面我有4张。第一个是主人,其他的是孩子。如果来自Master的任何工作表的A列(倡议名称)上有匹配,则更新C列(金额)和D列(日期)中的单元格,否则保持工作表不变。在本例中,船长的倡议名称为“G”,金额为“50”,日期为“2020年1月4日”。儿童1的倡议名称为“

  • 我正在使用API explorer和Chrome Advanced Rest Client根据给定的示例观看事件资源。https://developers.google.com/google-apps/calendar/v3/push#watch_request_examples 要求 回应 > 我在google上搜索了这个问题,但找不到太多帮助。 有人能告诉我,请求有什么问题吗?

  • 我无法将docker映像推送到低于错误的工件注册表 登录和拉取工作正常 詹金斯档案: Dockerfile: 我不确定这是怎么回事。我可以在jenkins从属节点上手动推送图像。但使用詹金斯会产生错误 我构建工作的日志 这是我的构建日志中的内容。

  • 我无法将docker映像推送到heroku注册表。 根据docker的说法,我已成功登录: 在那之后,我运行了,我得到了一些令人困惑的错误,说我试图推送到一个不安全的repo,而de-output中的url看起来是安全的(以https开头)。我做错了什么? 我正在使用以下jib配置: jib的Maven输出:build wiht-X:

  • 我有一个Github repo项目,使用Github操作和一个docker文件来构建SpringBoot Java项目 我想从Github repo下载来自Github repo的定制工件包,并能够将工件上传到其中。 所以我按照配置Apache Maven用于GitHub包的链接,将该部分添加到settings.xml文件中: 为了从dockerfile构建中发布包,我在pom.xml中添加了以下

  • 我最近为谷歌日历配置了谷歌推送通知。我使用推送通知通知在关注的日历中创建/更新/删除的事件,它工作得非常好,我使用双向同步。 但是,我在此设置中发现了一个小故障。我有一个创建事件的本地应用程序。它与Google日历同步(使用API调用),Google再次将事件通知给我的本地应用程序。这会导致事件重复。 如何区分从以下2种情况收到的推送通知? 案例1:用户在Google日历中创建或其他一些应用程序创