【问题标题】:Google App Script: Get content of Google Form response when submitting谷歌应用脚​​本:提交时获取谷歌表单响应的内容
【发布时间】:2019-12-03 11:15:14
【问题描述】:

我正在尝试创建一个 Google 应用脚本来生成包含 Google 表单响应内容(问题答案、上传图片)的 Google 文档。 是否可以做到以下几点?

提交后添加如下

我想知道以下问题的答案来实现这一点。

  1. 提交表单时如何触发App脚本
  2. 如何从触发脚本中获取表单响应对象

对于问题 1, * 我们可以手动安装触发器https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_manually * 我们可以像这样获取表单响应对象

function onFormSubmit(e) {
  const form = FormApp.getActiveForm();
  const formResponses = form.getResponses();
  Logger.log('form id = ' + form.getId() + ', length = ' + formResponses.length);
  const formResponse = formResponses[formResponses.length-1];
  const itemResponses = formResponse.getItemResponses();

  const doc = DocumentApp.create('New response');
  const body = doc.getBody();

  for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j];
    const item = itemResponse.getItem();
    body.appendParagraph('Response #%s to the question "%s" was "%s"',
        (i + 1).toString(),
        itemResponse.getItem().getTitle(),
        itemResponse.getResponse());
  }

  docblob = doc.getAs('application/pdf');
  docblob.setName(doc.getName() + ".pdf");
  const file = DriveApp.createFile(docblob);
  DriveApp.addFile(file);

  MailApp.sendEmail(
    "mail address",
    "new response",
    file.getDownloadUrl())
}

【问题讨论】:

  • 绝对有可能,对event objects做一些研究。尝试编写脚本,如果您有任何无法解决的问题,请在此处提问。目前这有点太宽泛了,因为您没有任何自己的代码可以进行故障排除。
  • 好的,所以你不知道答案?
  • 您的问题的答案是肯定的 - 可以这样做。
  • 我的问题是1.如何触发app脚本,2.如何获取表单内容(或者脚本触发时如何获取表单对象)。
  • 添加的问题

标签: google-apps-script


【解决方案1】:

触发器:

首先,你需要设置一个onFormSubmit触发器。

Mogsdad 为此有一个great answer:

  1. 选择编辑 > 当前项目的触发器。您会看到一个面板显示消息未设置触发器。点击此处立即添加。
  2. 点击链接。
  3. 在运行下,选择您希望触发器执行的功能。 (在这种情况下是getResponse()。)
  4. 在事件下,选择从电子表格。
  5. 从下一个下拉列表中,选择在表单提交时。
  6. 点击保存。

注意:为此需要在电子表格上设置触发器。


获取响应值:

正确设置触发器后,您只需要:

function getResponse(e) {
  var response = e.values;
}

这里我们使用事件对象来获取表单响应中提交的值。这将返回提交到电子表格的值数组,在我测试的示例中,数组如下所示:

[25/07/2019 10:02:36,选项 1,答案 2,选项 3]


参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多