首页 > 解决方案 > 如何仅从谷歌表单提交中获取实际触发谷歌 appscript 中的 onFormSubmit 事件的值?

问题描述

如何仅从在 Google appscript 中触发 onFormSubmit 事件的提交中获取值?

也就是说,当提交谷歌表单响应时,有没有办法只获取与实际上触发 onFormSubmit 的表单响应对应的值行(在谷歌表中)?

到目前为止,我唯一能找到的是

let values = SpreadsheetApp.getActive().getSheets()[0].getDataRange().getValues();

它返回所有必须以某种方式过滤的工作表行。

谷歌表格可以检测到 onFormSubmit 事件似乎很奇怪,但没有方法从触发事件的提交中实际获取数据。

标签: javascriptgoogle-apps-scriptgoogle-sheetstriggersgoogle-forms

解决方案


你可以看看https://developers.google.com/apps-script/guides/triggers/events

你也可以这样做:

function myOnFormSubmit(e) {
  console.log(JSON.stringify(e));
}

有时你会更好地了解那里的情况。

这是一个例子:

{"authMode":"FULL","namedValues":{"1":[""],"2":[""],"Timestamp":["6/29/2020 18:55:10"],"one":["Option 1"]},"range":{"columnEnd":2,"columnStart":1,"rowEnd":14,"rowStart":14},"source":{},"triggerUid":"","values":["6/29/2020 18:55:10","Option 1","",""]}

所以 e.range.rowStart 是刚刚在响应表中编辑的行,而 e.range.getSheet().getName() 是响应表的名称


推荐阅读