Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 从谷歌表单到谷歌日历-日期和时间问题_Forms_Google Sheets - Fatal编程技术网

Forms 从谷歌表单到谷歌日历-日期和时间问题

Forms 从谷歌表单到谷歌日历-日期和时间问题,forms,google-sheets,Forms,Google Sheets,我正在尝试修改我在网上找到的一个脚本,该脚本似乎使该事件成为一个全天的事件,我不希望这样,我希望它只是表单/电子表格中指定的时间 电子表格位于此处- 这是我正在使用的脚本,但它没有添加 //this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question var calendarId = "<removed f

我正在尝试修改我在网上找到的一个脚本,该脚本似乎使该事件成为一个全天的事件,我不希望这样,我希望它只是表单/电子表格中指定的时间

电子表格位于此处-

这是我正在使用的脚本,但它没有添加

//this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question
var calendarId = "<removed for privacy>";

//below are the column ids of that represents the values used in the spreadsheet (these are non zero indexed)
var startDtId = 4;
var endDtId = 4;
var titleId = 2;
var titleId2 = 3;
var descId = 7;
var tstart = 4;
var tstop = 5;
var formTimeStampId = 1;

function getLatestAndSubmitToCalendar() {
  var start = new Date(sheet.getRange(lr,tstart,1,1).getValue());
  var end = new Date(sheet.getRange(lr,tstop,1,1).getValue());
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  var lr = rows.getLastRow();
  var subOn = "Submitted on :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by "+sheet.getRange(lr,titleId,1,1).getValue();
  var desc = "Comments: "+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
  var title = sheet.getRange(lr,titleId,1,1).getValue()+" "+sheet.getRange(lr,titleId2,1,1).getValue();
    createEvent(calendarId,title,start,end,desc);
}

  function createEvent(calendarId,title,start,end,desc) {
  var cal = CalendarApp.getCalendarById(calendarId);
  var start = new Date(sheet.getRange(lr,tstart,1,1).getValue());
  var end = new Date(sheet.getRange(lr,tstop,1,1).getValue());
  var loc = 'Computer Center';

  var event = cal.createEvent(title, start, end, {
      description : desc,
      location : loc
  });
};
//这是要将事件添加到的日历的ID,可在相关日历的“日历设置”页面上找到
var calendarId=“”;
//下面是的列ID,表示电子表格中使用的值(这些是非零索引的)
var startDtId=4;
var-endDtId=4;
var-titleId=2;
var titleId2=3;
var-descId=7;
var-tstart=4;
var-tstop=5;
var formTimeStampId=1;
函数getLatestAndSubmitToCalendar(){
var start=新日期(sheet.getRange(lr,tstart,1,1).getValue());
var end=新日期(sheet.getRange(lr,tstop,1,1).getValue());
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var lr=rows.getLastRow();
var subOn=“提交日期:”+sheet.getRange(lr,formTimeStampId,1,1).getValue()+”由“+sheet.getRange(lr,titleId,1,1).getValue()”;
var desc=“Comments:”+sheet.getRange(lr,descId,1,1).getValue()+“\n”+subOn;
var title=sheet.getRange(lr,titleId,1,1).getValue()+“”+sheet.getRange(lr,titleId,1,1).getValue();
createEvent(日历ID、标题、开始、结束、描述);
}
函数createEvent(日历ID、标题、开始、结束、描述){
var cal=CalendarApp.getCalendarById(calendarId);
var start=新日期(sheet.getRange(lr,tstart,1,1).getValue());
var end=新日期(sheet.getRange(lr,tstop,1,1).getValue());
var loc=‘计算机中心’;
var event=cal.createEvent(标题、开始、结束、{
描述:描述,
地点:loc
});
};
原始文章位于此处:


我似乎根本无法让约会顺利进行。。。如果我使用原始代码,它可以正常工作,但时间是全天,而不是指定的时间。。。我似乎打破了它,试图让它工作。。。任何帮助都将不胜感激……

这比我想象的要简单得多。。。我刚刚删除了他的一些台词(那些将小时和分钟设置为0的台词)。一旦我删除了这些台词并更改了一些内容,我得到了以下非常有用的信息:

//this is the ID of the calendar to add the event to, this is found on the calendar settings page of the calendar in question
var calendarId = "alcc.ccenter@gmail.com";

//below are the column ids of that represents the values used in the spreadsheet (these are non zero indexed)
var startDtId = 4;
var endDtId = 5;
var titleId = 2;
var titleId2 = 3;
var descId = 7;
var formTimeStampId = 1;

function getLatestAndSubmitToCalendar() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  var lr = rows.getLastRow();
  var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
  //set to first hour and minute of the day.
  var endDt = sheet.getRange(lr,endDtId,1,1).getValue();
  //set endDt to last hour and minute of the day
  var subOn = "Added :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by: "+sheet.getRange(lr,titleId,1,1).getValue();
  var desc = "Comments :"+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
  var title = sheet.getRange(lr,titleId,1,1).getValue()+" - "+sheet.getRange(lr,titleId2,1,1).getValue();
    createEvent(calendarId,title,startDt,endDt,desc);
}​

  function createEvent(calendarId,title,startDt,endDt,desc) {
  var cal = CalendarApp.getCalendarById(calendarId);
  var start = new Date(startDt);
  var end = new Date(endDt);
  var loc = 'Computer Centre';

  var event = cal.createEvent(title, start, end, {
      description : desc,
      location : loc
  });
};

我的表单有以下列-时间戳、姓名、缺勤、开始、结束、原因、注释。它们不需要是一个单词,但由于我试图遵循的视频示例,我将它们改为一个单词的标题…但是上面的代码创造了奇迹。

我不得不修改表单处理日期的方式以适应日历

function createEvent() {
    var form = FormApp.getActiveForm();
    var cal = CalendarApp.getDefaultCalendar();
    var responses = form.getResponses();
    var len = responses.length;
    var last = len – 1;
    var items = responses[last].getItemResponses();
    var email = responses[last].getRespondentEmail();
    var name = items[0].getResponse();
    var bring = items[1].getResponse();
    var date = items[2].getResponse();
    Logger.log(date);
    var replace = date.replace(/-/g,”/”);
    Logger.log(replace);
    var start = new Date(replace);
    Logger.log(‘start ‘+start);

    //Logger.log(newStart.getHours());
    var endHours = 2+0+start.getHours();
    
    //Logger.log(start.getDay());
    var day = start.getDate();
    var minutes = start.getMinutes();
    var year = start.getFullYear();
    var month = start.getMonth();
    var hours = start.getHours();
    
    var d = new Date(year, month, day, endHours, minutes);
    Logger.log(d);

    var event = cal.createEvent(‘Class Party ‘+name+’ brings ‘+bring, start, d)
        .addGuest(email)
        .setDescription(name+’ you will be bringing ‘+bring+’ to the party.’);

    GmailApp.sendEmail(email, name + ’ a Google Calendar invite has been created for you’, name + ’ You filled out the Google Form for the date of ‘ + start + ’. Check your Google Calendar to confirm that you received the invite.\n’);
}

我也尝试过这个教程,虽然看起来简单得多,但它却回击了其他人在视频评论中的错误。。。