在现有电子表格中为 Google 表单中的每个回复创建一个新表格



我已经创建了一个Google表单,我需要在现有电子表格中为从该表单收到的每个回复创建一个新工作表 - 每个受访者都会在电子表格中生成一个新工作表。使用某种onSubmit命令可以做到这一点吗?我对Javascript完全陌生,但愿意学习。非常感谢您的帮助。

数据写入电子表格之前,您无法拦截 Google 表单提交的内容。 您所能做的就是在数据插入电子表格后对其进行操作。 因此,您的回复将被放入电子表格中,首先全部在一张纸中。 你无法改变这一点。

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

这是一些示例代码:

此代码假定要命名工作表的值位于 A 列中 函数 subTheForm() { 记录器.log("提交运行");

  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。 在代码编辑器中,可以选择"视图"菜单和"日志"菜单项以显示日志。

您还可以从代码编辑器"手动"运行代码,方法是选择函数名称并单击运行箭头图标。 这样,您无需每次都提交表单即可运行代码。 使代码正常工作,然后将其连接到 onsubmit 触发器。

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

希望对您有所帮助!

最新更新