在Google表单的现有电子表格中为EACH RESPONSE创建一个新工作表

时间:2015-02-03 17:37:31

标签: google-apps-script google-sheets google-form

我创建了一个Google表单,我需要在现有电子表格中为从此表单收到的每个响应创建一个新表单 - 每个响应者在电子表格中生成一个新表单。是否可以使用某种onSubmit命令?我对Javascript完全陌生,但愿意学习。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

在将数据写入电子表格之前,您无法拦截Google表单提交。您可以做的就是在数据已经插入电子表格后对其进行操作。因此,您的回复将被放入电子表格中,所有这些都在一张表格中开始。你无法改变它。

现在的问题是,您想要从绑定到表单的代码中操作数据还是绑定到工作表?您将要使用绑定到工作表的项目。

这是一些示例代码:

此代码假定您要为工作表命名的值位于A列中     function subTheForm(){       Logger.log('submit ran');

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  //Get last row of data
  var lastRow = sheet.getLastRow();
  var colA_Data = sheet.getRange(lastRow, 1).getValue();

  //var thisUser = 'theUserName';
  ss.insertSheet(colA_Data);
};

旧答案:

每次提交新表单时,您都需要生成某种唯一字符串。我不知道你想要什么。您可以获取用户名,然后向其添加日期/时间,然后为每个新工作表命名用户名和时间。基本代码如下所示:

function submit(){
  Logger.log('submit ran');

  var thisUser = 'theUserName';
  var ss = SpreadsheetApp.getActive().insertSheet(thisUser);

};

请注意Logger.log();声明。这会给LOG打印一些东西。在代码编辑器中,您可以选择 VIEW 菜单,然后选择 LOGS 菜单项来显示LOG。

您还可以通过选择功能名称并单击运行箭头图标,从代码编辑器“手动”运行代码。这样,您可以在不提交表单的情况下运行代码。获取代码,然后将其连接到 onsubmit 触发器。

答案 1 :(得分:0)

为此,您可以使用此命令(getActiveSpreadsheet())获取电子表格,然后根据此page所需的参数创建新工作表。您可以在onSubmit触发器中添加这行代码。

希望有所帮助!