首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用来自google表单的响应数据填充google工作表模板?

使用Google Apps Script,可以轻松地从Google表单中获取响应数据并填充到Google工作表模板中。以下是详细步骤:

  1. 创建Google表单和Google工作表:首先,创建一个包含所需字段的Google表单,并在同一Google Drive中创建一个Google工作表作为模板。
  2. 打开Google Apps Script编辑器:在Google工作表中,选择"工具"菜单,然后点击"脚本编辑器"。这将打开一个新的浏览器选项卡,显示Google Apps Script编辑器。
  3. 编写脚本代码:在Google Apps Script编辑器中,编写以下代码:
代码语言:txt
复制
function onFormSubmit(e) {
  var response = e.response;
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var templateSheet = SpreadsheetApp.openById("TEMPLATE_SHEET_ID").getActiveSheet();
  
  // 将表单响应数据复制到工作表模板
  var values = response.getItemResponses();
  var templateValues = templateSheet.getRange(1, 1, templateSheet.getLastRow(), templateSheet.getLastColumn()).getValues();
  
  for (var i = 0; i < values.length; i++) {
    var question = values[i].getItem().getTitle();
    var answer = values[i].getResponse();
    
    for (var j = 0; j < templateValues.length; j++) {
      if (templateValues[j][0] == question) {
        templateValues[j][1] = answer;
        break;
      }
    }
  }
  
  // 清空工作表模板并填充新数据
  templateSheet.clearContents();
  templateSheet.getRange(1, 1, templateValues.length, templateValues[0].length).setValues(templateValues);
  
  // 将填充后的工作表模板复制到目标工作表
  templateSheet.copyTo(sheet.getParent()).setName("Filled Template");
}

请替换代码中的"TEMPLATE_SHEET_ID"为Google工作表模板的ID,该ID可以从模板工作表的URL中获取。

  1. 配置触发器:在Google Apps Script编辑器中,选择"编辑"菜单,然后点击"当前项目的触发器"。在触发器设置页面,点击"添加触发器"按钮。在触发器对话框中,选择以下配置项:
    • 选择"onFormSubmit"函数
    • 选择事件来源为"表单"
    • 选择事件类型为"提交"
  • 保存并部署脚本:点击触发器设置页面中的"保存"按钮,并授予所需的权限。然后,点击"部署"菜单,选择"新部署"。在部署对话框中,选择以下配置项:
    • 选择部署类型为"Web应用"
    • 执行API为"Me"(只需访问当前用户的数据)
    • 选择"无需授权"为"谁可以访问此应用?"
    • 点击"部署"按钮
  • 获取Web应用URL:在部署成功后,将显示一个包含"当前网络应用URL"的链接。复制该URL。
  • 配置Google表单脚本:返回到Google表单的编辑器中,选择"工具"菜单,然后点击"编辑表单前的脚本"。这将打开一个新的浏览器选项卡,显示Google Apps Script编辑器。
  • 在Google表单脚本编辑器中,编写以下代码:
代码语言:txt
复制
function onSubmit(e) {
  var url = "WEB_APP_URL";
  var formId = "FORM_ID";
  
  // 获取表单响应数据
  var response = e.response;
  var editResponseUrl = response.getEditResponseUrl();
  
  // 发送POST请求,将表单响应数据传递给Web应用
  var options = {
    "method": "post",
    "payload": {
      "url": editResponseUrl,
      "formId": formId
    }
  };
  
  UrlFetchApp.fetch(url, options);
}

请替换代码中的"WEB_APP_URL"为步骤6中复制的Web应用URL,"FORM_ID"为当前Google表单的ID,该ID可以从表单编辑器的URL中获取。

  1. 保存并关闭Google表单脚本编辑器。

现在,每当有新的Google表单响应提交时,脚本将自动获取响应数据并填充到Google工作表模板中,并将填充后的工作表模板复制到目标工作表中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

18分3秒

如何使用Notion有效率的管理一天?

领券