根据问卷答复将Google Form数据导出至不同Google Sheets(非标签页)
Google Form提交数据自动分发至独立Google Sheets实现方案
前期准备
- 提前完成Google Form的配置,同时建好所有需要的独立Sheets文件,每个独立Sheets内创建和对应厂商名完全一致的标签页,标签页的表头顺序和Form的问题顺序保持完全一致
- 记录每个厂商对应独立Sheets的文件ID:打开Sheets后,URL中
https://docs.google.com/spreadsheets/d/和/edit之间的字符串就是文件ID,后续配置需要用到
操作步骤
步骤1:打开Form绑定的脚本编辑器
打开目标Google Form,点击右上角三个点图标,选择「<> 脚本编辑器」,进入Google Apps Script编辑页,删除默认生成的空函数代码。
步骤2:粘贴并适配自定义代码
将下面的代码粘贴到编辑页,按照注释修改适配你自己的配置即可:
// 【修改这里】配置厂商名和对应独立Sheets ID的映射关系,多个厂商按格式追加即可 const BRAND_SHEET_MAP = { "Honda": "替换为Honda对应独立Sheets的文件ID", "Toyota": "替换为Toyota对应独立Sheets的文件ID" } // 表单提交触发的核心执行函数,不需要改逻辑 function onFormSubmit(e) { // 拿到本次提交的所有答复,按Form问题顺序排列的数组 const submitValues = e.values; // 【修改这里】替换数字为Form中「汽车厂商」问题的序号,注意从0开始计数:第一个问题序号为0,第二个为1,以此类推 const selectedBrand = submitValues[1]; // 校验所选厂商是否在配置映射中,无匹配则直接结束 if(!BRAND_SHEET_MAP.hasOwnProperty(selectedBrand)) return; // 打开对应厂商的独立Sheets,找到同名标签页,追加本次提交数据 const targetFile = SpreadsheetApp.openById(BRAND_SHEET_MAP[selectedBrand]); const targetSheet = targetFile.getSheetByName(selectedBrand); targetSheet.appendRow(submitValues); }
步骤3:配置表单提交触发器
在Apps Script编辑页左侧点击闹钟样式的「触发器」按钮,点击右下角「添加触发器」,按以下规则配置:
- 选择要运行的函数:
onFormSubmit - 选择要运行的部署版本:头部(默认最新版本)
- 选择事件来源:表单
- 选择事件类型:表单提交时
其余选项保持默认,点击保存后按照提示完成权限授权即可。
注意:如果弹出「Google未验证此应用」提示,点击「高级」→「前往(你的项目名称)」即可继续授权,属于自定义脚本的正常提示,没有安全风险。
步骤4:功能测试
回到Google Form提交测试数据,分别选择不同的厂商选项,进入对应独立Sheets查看是否已经自动写入提交内容即可。
常见问题排查
- 数据未正常写入:优先查看Apps Script左侧「执行记录」的报错信息,90%的问题为两种情况:要么是映射里的厂商名和Form选项的文字、大小写、空格不完全一致,要么是汽车厂商问题的序号填写错误
- 新增厂商:直接在
BRAND_SHEET_MAP里追加对应键值对即可,不需要修改其他逻辑 - 需要保留总表:只需在
onFormSubmit函数末尾追加一行写入总表的代码即可,不影响分发逻辑
内容的提问来源于stack exchange,提问作者Jump_Ace
相关产品推荐
相关产品推荐

