【问题标题】:Is there a way to have a Form submit responses to a specific sheet in a spreadsheet?有没有办法让表单提交对电子表格中特定工作表的响应?
【发布时间】:2017-06-09 08:57:05
【问题描述】:

我知道以下行: form.setDestination(FormApp.DestinationType.SPREADSHEET, ss1.getId());

但我试图让表单提交到 appendRow/提交到电子表格 ss1 中的特定工作表。有什么办法可以在谷歌应用脚​​本中做到这一点?以上只是指向电子表格 ss1 并在该电子表格中创建一个“表单响应”表。

提前感谢您的指导!

附:对于更多背景知识,我正在尝试设置一个表单以将费用数据发送到我的预算 google 表格文件,该文件的目标表格名称具有“当前月份.年份”格式。

【问题讨论】:

  • 你会使用插件吗?至少有一个插件可以做到这一点。

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


【解决方案1】:

您可以编写自定义事件处理函数(在表单的脚本编辑器中不是电子表格的脚本编辑器)并通过可安装的方式将其绑定到表单提交事件触发器(see documentation)。

在函数的主体中,您可以引用电子表格和要在其中传递表单数据的目标工作表。但是,您必须了解 Form Service APIs 以及如何手动提取和格式化表单的受访者数据,因为您无法将“链接”电子表格绑定到表单。

因此您可以编写一个事件处理函数(来自表单的脚本编辑器),如下所示:

var SPREADSHEET_ID = "[Your spreadsheet ID]",
    SHEET_NAME = "[Your sheet name]";

function onFormSubmit(e) {
    var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME),
        form = FormApp.getActiveForm();

    // Extract and format form data and inject it into the sheet 
}

一旦您有了该功能,您就可以创建一个可安装的触发器,通过工具栏中的“编辑”菜单命令将其绑定到表单脚本编辑器中的表单提交事件。 Here is a link to the steps you'll need to follow to create the trigger.

希望对您有所帮助。

【讨论】:

  • 谢谢!说得通。我试试看
  • 像魅力一样工作!非常感谢!
  • 响应表是如何命名的,有没有办法判断电子表格中的哪个表是链接到表单的表?我知道我不应该问问题,但考虑到文档的匮乏和这篇文章的相关性,这似乎是相关的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2014-03-14
相关资源
最近更新 更多