谷歌表格 - 将两个表格的结果放在两张一张电子表格中

时间:2012-07-11 14:52:13

标签: forms spreadsheet google-sheets

我有一个接受和审查拨款申请的系统。

有两种形式:

  1. 申请人提交的表格和授权请求
  2. 由我发送给三位评审员以评估拨款请求的表格
  3. 我希望将这两种表单的结果放在一个电子表格中:   表1列出了申请表中的数据(带有自动生成的序列号)。   第2页列出了所有应用程序的所有审核中的数据(包含已审核的应用程序序列号的列)。

    我遇到了麻烦:   1 - 指定两种形式'结果会在不同的工作表上显示在同一个电子表格中。   2 - 向应用程序添加序列号,然后将相同的序列号添加到三个审阅者的结果

    有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用GAS直接将两个Google表单的数据直接插入单个电子表格而不涉及另外两个电子表格是不可能的,因为现在表单只能将数据部署到自己的电子表格而GAS没有任何服务来访问表单。

答案 1 :(得分:0)

当你提出一个相当广泛的问题时,我会成为一个小将军,但我会尽我所能。我会考虑使用UiApp从头开始构建表单。它将使您在功能上更加灵活,并且信息流更简单,但由于您的问题是关于表单,我会坚持这一点。

问题1:您希望在与表单1和2关联的每个电子表格中创建一个OnSubmit函数,将所需数据复制到另一个电子表格中。

function onFormSubmit() { // add an onsubmit trigger 
var emailAddress = e.values[1];
var fullName     = e.values[2];
var newSS = SpreadsheetApp.openById("Add New SS ID").getSheetByName('Sheet1');//one form should be 'Sheet2'
  var range = sheet.getRange(sheet.getLastRow()+1,1,1,2);
range.setValues([[emailAddress, fullName]]);

问题2:分配序列号。在我看来,您只想为应用程序分配一个数字,然后将该数字提供给审阅者,以便他们进入表单。要分配此号码,您可以关注Tutorial: Automating a Help Desk Workflow。相反,我只是使用get last行,因为我从不删除活动应用程序中的行,因此行号是唯一的。

var serialNum = newSS.getLastRow()+1;

然后您可以像其他人一样添加该变量。我没有测试过这段代码,因此您可能需要根据自己的需要进行清理。