添加新行时自动插入日期戳

Posted

技术标签:

【中文标题】添加新行时自动插入日期戳【英文标题】:Insert Datestamp automatically when a new row is added 【发布时间】:2020-02-20 21:00:58 【问题描述】:

我正在通过 Zapier 从我们网站上提交的表单中收集数据。每次提交表单时,Zapier 都会自动向 Google 表格添加一个新行,并将数据填充到 B:L 列。 A 列是我希望每一行都有一个日期戳 (YYYY-MM-DD) 的地方。

目前我有这个脚本,我在网上找到的。如果我手动编辑工作表,这将有效。但是,当 Zapier 将数据推送到工作表 (https://docs.google.com/spreadsheets/d/1HnxQmAQlLVLsLG_RKJwkmzzObwlwe8hHlAHd65zLjSc/edit?usp=sharing) 时,脚本不会触发。

function onEdit(event)
 
  var timezone = "GMT+2";
  var timestamp_format = "YYYY-mm-dd"; // Timestamp Format. 
  var updateColName = "Country";
  var timeStampColName = "Date";
  var sheet = event.source.getSheetByName('Sheet1');


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

我应该如何编辑此脚本以使其与自动行更新一起使用?或者有人有另一个脚本供我尝试吗?

【问题讨论】:

您能否准确分享一下您的 Zapier 步骤流程是什么?是否将 Zapier Webhooks 作为触发器,然后将 Add Row to Google Sheet 作为操作步骤? 【参考方案1】:

onEdit 函数 does not trigger when used with the API。所以,简短的回答是否定的。

但是,您可以尝试修改 Zappier 挂钩以添加时间戳

希望这会有所帮助!

【讨论】:

感谢您的意见。不幸的是,在这种情况下,修改 Zapier 挂钩将无济于事,因为它无法将时间戳发送到 Google 表格。

以上是关于添加新行时自动插入日期戳的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据类型 - 日期和时间类型

使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进

如何在插入时自动将服务器日期添加到文档中?

MySQL为每一行自动存储日期时间

如何在插入新行后立即将自动生成的主键值保存到第二列

当前日期时间的计算列?