如何通过带Location_ID的URL自动填充Google Forms关联表格数据
实现Google Forms按地点URL自动填充Location_ID的方案
完全可以实现你的需求,通过两种方式能让不同地点的专属URL自动把Location_ID同步到关联的Google Sheets中,具体操作如下:
方法一:利用预填充链接生成专属URL(适合少量地点)
- 在你的Google Forms中添加一个短文本类型的问题,标题设为
Location_ID,进入问题设置勾选「隐藏问题」(受访者看不到该字段,但提交后数据会同步到表格) - 点击表单右上角的三个点图标,选择「获取预填充链接」
- 在预填充页面,给
Location_ID填入对应地点的标识(比如Example1),点击「获取链接」 - 复制生成的链接,就是该地点的专属问卷URL,直接生成二维码即可。每个地点重复上述步骤,填入对应Location_ID生成专属链接
受访者扫描二维码打开问卷后,Location_ID已被预填充,提交后会自动写入关联表格的对应列。
方法二:URL参数+Apps Script批量生成(适合大量地点)
如果需要批量生成数十上百个地点的URL,用这种效率更高:
- 同样在Forms中添加
Location_ID短文本问题并设置为隐藏 - 打开关联的Google Sheets,点击「扩展程序」→「Apps Script」打开脚本编辑器
- 替换默认代码为以下脚本:
function onFormSubmit(e) { const response = e.response; const urlParams = new URL(response.getEditResponseUrl()).searchParams; const locationId = urlParams.get('loc'); if (locationId) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); // 把数字3改成你表格中Location_ID列的实际列号(A=1,B=2,以此类推) sheet.getRange(lastRow, 3).setValue(locationId); } }
- 保存脚本后,点击左侧「触发器」图标,添加新触发器:
- 选择函数:
onFormSubmit - 事件来源:「表单」
- 事件类型:「当表单提交时」
- 完成后保存触发器
- 选择函数:
之后构造专属URL的格式为:https://docs.google.com/forms/d/e/[你的表单ID]/viewform?loc=Example1
把[你的表单ID]替换成你实际的表单ID,loc后面的值换成对应地点的Location_ID,批量生成每个地点的URL和二维码即可。
注意事项
- 两种方法都需要确保表单中存在
Location_ID字段,否则无法写入数据 - 测试时可以扫描生成的二维码,提交问卷后查看表格是否正确填入Location_ID
- 方法一的预填充链接也可以批量生成,只需复制链接后替换其中的预填充参数值即可
内容的提问来源于stack exchange,提问作者Mark_LTU
相关产品推荐
相关产品推荐

