如何以html表单填充的在线表单向Google表格单元格添加日期和时间

时间:2019-06-25 13:31:36

标签: javascript date google-apps-script google-sheets

我有一个Google表格,该表格由网站上的HTML表单自动填充。我需要输入其信息的用户的确切日期和时间。因此,当他们填写自己的信息并按“提交”按钮时,我不仅会得到他们的信息,还会得到他们提交表单的确切时间。我也不希望不同的位置发送不同的时间,是否可以在Google工作表中设置格林尼治标准时间,以便所有日期和时间都根据同一格林尼治标准时间进行评估。

这是用于编辑单元格的代码,但是,仅在更新单元格而不添加新单元格时才有效。添加新行(或单元格)后,如何修改它以进行更新。:

function onEdit(event)
{ 
  var timezone = "GMT+8:30";
  var timestamp_format = "yyyy-MM-dd HH:mm:ss"; // Timestamp Format. 
  var updateColName = "date";
  var timeStampColName = "Date Sent";
  var sheet = event.source.getSheetByName('Attendance'); //Name of the sheet where you want to run this script.


  var actRng = event.source.getActiveRange();
  var editColumn = actRng.getColumn();
  var index = actRng.getRowIndex();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var dateCol = headers[0].indexOf(timeStampColName);
  var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
  if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
    var cell = sheet.getRange(index, dateCol + 1);
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
    cell.setValue(date);
  }
}

1 个答案:

答案 0 :(得分:0)

当通过代码进行更改时,我们不能使用简单或可安装的触发器来更新电子表格。参考https://developers.google.com/apps-script/guides/triggers

另一种选择是增强代码,以更改传播方式,并添加所需的值。