如何通过Google Script编辑器与Forms获取受访者登录邮箱并同步至关联表格?
实现G Suite表单自动同步受访者登录邮箱到关联表格
我来帮你搞定这个企业级需求,结合G Suite的权限,咱们可以通过Google Apps Script轻松实现自动把受访者的真实登录邮箱和表单答案同步到关联电子表格,具体步骤如下:
一、关键前提准备
- 先确保你的Google Forms已经关联了电子表格(在表单右上角「响应」标签里完成设置)
- 必须在表单设置里,找到「收集邮箱地址」选项,选择**「仅限我的组织内的用户登录后提交」**——这一步是核心:只有这样
getRespondentEmail()才能获取到用户的真实G Suite登录邮箱,同时还能自动验证受访者身份,仅域内用户可提交表单。
二、编写Google Apps Script代码
- 打开你的Google Forms,点击右上角的「⋮」菜单,选择「脚本编辑器」
- 清空默认的
myFunction(),替换成以下代码:
function onFormSubmit(e) { // 获取表单提交的响应对象 const formResponse = e.response; // 提取受访者的G Suite登录邮箱(仅域内用户提交时有效) const userEmail = formResponse.getRespondentEmail(); // 获取关联的电子表格和活动工作表 const activeForm = FormApp.getActiveForm(); const targetSheet = SpreadsheetApp.openById(activeForm.getDestinationId()).getActiveSheet(); // 获取最新提交的行号和当前表格的最后一列 const lastRow = targetSheet.getLastRow(); const lastCol = targetSheet.getLastColumn(); // 把邮箱插入到当前提交行的最后一列(想放第一列的话看注释) targetSheet.getRange(lastRow, lastCol + 1).setValue(userEmail); // 如果要把邮箱放在第一列,取消下面两行注释: // targetSheet.getRange(lastRow, 1, 1, lastCol).shiftRight(1); // targetSheet.getRange(lastRow, 1).setValue(userEmail); }
三、设置表单提交触发器
脚本写完后,得给它加个触发条件,让它在用户提交表单时自动运行:
- 在脚本编辑器左侧,点击时钟图标(「触发器」)
- 点击右下角「添加触发器」,设置以下参数:
- 要运行的函数:
onFormSubmit - 部署来源:「从表单」
- 事件类型:「表单提交」
- 要运行的函数:
- 点击「保存」,第一次设置时需要授权脚本访问表单和表格的权限(企业版G Suite下通常不会有权限限制)
四、测试验证
用你的G Suite域内账号提交一次表单,然后检查关联的电子表格,就能看到对应的登录邮箱已经自动添加到提交行的指定位置了。
内容的提问来源于stack exchange,提问作者Richard Franek
相关产品推荐
相关产品推荐

