使用 'onsubmit' 表单提交到多个电子表格

Form Submissions to multiple Spreadsheets using 'onsubmit'

我有一个 Gform,我需要根据第一个问题的多项选择答案提交到 3 个电子表格中的一个。如下所示。

这是哪个项目?

  1. 项目 A
  2. 项目 B
  3. 项目 C

我只能使用 1 个初始表格。我需要提交到完全不同的电子表格,而不仅仅是一个电子表格中的不同选项卡。而且,我不能使用导入范围功能,因为它不允许在原始提交过程中出现错误的情况下覆盖数据,而无需进入包含其他项目提交和数据的表单响应页面。

我目前的两个想法是,

  1. 使用 'onsubmit' 脚本根据他们对第一个问题的回答来路由提交,但我找不到任何其他示例来说明如何执行此操作或有人做过类似的事情。我发现最接近的是使用 onsubmit 之后发送特定的电子邮件,但实际上没有改变提交的目的地。
  2. 使用脚本构建表单,在他们回答第一个问题(项目 A、B、C)后,它将重定向到另一个部分或单独的表单,提交将被发送到每个项目的电子表格。对于这个想法,我无法弄清楚如何让不同的表单部分提交到单独的电子表格,或者如何让用户根据他们对第一个问题的回答被重定向到另一个表单。

如有任何帮助或建议,我们将不胜感激。谢谢,

使用第一个备选方案:

function onFormSubmit(e) {
  var ssObj={'ProjectA':'ssid','ProjectB':'ssid','ProjectC':'ssid'};
  var ss=SpreadsheetApp.openById(ssObj[e.values[1]]);//assuming question one is the answer for which project the response is supposed to go to
  var sh=ss.getSheets()[0];
  sh.appendRow(e.values)';
}

好的,我知道你需要一些解释。

  1. 首先你必须设置一个 onFormSubit() 触发器。您可以从 Edit/Current Project Triggers menu 开始。当提交表单触发此函数时,e.values 将是该表单中所有答案的数组。

您也可以使用代码做到这一点:

function createOnFormSubmitTrigger() {
  var ss=SpreadsheetApp.getActive();
  ScriptApp.newTrigger('onFormSubmit').forSpreadsheet(ss.getId()).onFormSubmit().create();
}
  1. ssObbj 是一个 javascript 对象,您根据问题答案中的信息创建。 var ssObj={'The answer for for project A':'the spreadsheet id for project A','the answer for project B':'the spreadsheet id for project b','the answer for project C':'the spreadsheet id for answer C'};

一些参考阅读。

onFormSubmit Object for spreadsheet

onFormSubmit Object for form

SpreadsheetApp.openById()

Sheet.appendRow()