如何将Google Form响应ID保存至关联的Google Spreadsheet
把Google Form响应ID保存到关联表格的方法
没问题,我来一步步教你实现这个需求:
1. 修改你的表单脚本
把原来的submitForm2函数替换成下面的代码,每一步都加了注释说明作用:
function submitForm2(e) { // 获取当前提交的响应ID const responseId = e.response.getId(); // 获取表单关联的目标电子表格 const form = FormApp.getActiveForm(); const destinationSpreadsheet = SpreadsheetApp.openById(form.getDestinationId()); const responseSheet = destinationSpreadsheet.getActiveSheet(); // 默认的响应数据工作表 // 定位到刚提交的那一行(表单提交后会自动在表格最后新增一行) const lastRow = responseSheet.getLastRow(); // 把响应ID写入指定列,这里例子选第5列(对应表格里的E列) // 如果你想把ID加到现有数据的最右侧新列,可以用下面的targetColumn写法 // const targetColumn = responseSheet.getLastColumn() + 1; const targetColumn = 5; // 将响应ID写入目标单元格 responseSheet.getRange(lastRow, targetColumn).setValue(responseId); }
2. 设置表单提交触发器
这个脚本需要在表单提交时自动触发,所以得配置触发器:
- 打开Google Form,点击右上角的三个点 → 选择「脚本编辑器」
- 在脚本编辑器界面,点击左侧栏的「触发器」图标(闹钟形状)
- 点击「添加触发器」按钮,按以下配置:
- 要运行的函数:
submitForm2 - 事件源:「从表单」
- 事件类型:「表单提交」
- 要运行的函数:
- 点击保存,按照提示完成权限授权(第一次授权需要确认允许脚本访问你的表格和表单)
3. 实用小提示
- 如果不想固定列号,想自动把ID加到现有数据的最右侧,可以把代码里的
targetColumn改成responseSheet.getLastColumn() + 1,这样每次都会自动新增一列存ID - 测试时可以手动提交一次表单,然后去关联表格的目标列查看,确认响应ID已经写入
- 要是你的表单关联了多个工作表,记得把
getActiveSheet()改成实际存响应数据的工作表名称,比如getSheetByName("表单响应1")
内容的提问来源于stack exchange,提问作者user4565857
相关产品推荐
相关产品推荐

