如何用Google Apps Script自动添加Google Form提交者信息为独立板块?
实现Google Form自动展示请愿签名的方法
准备工作
- 打开你的Google Form,在现有问题末尾添加两个组件:
- 一个「标题」(比如命名为「已签名人员」)
- 紧接着添加一个「段落文本」类型的问题,勾选「仅限查看」,给这个问题起个明确标题(比如「签名列表」)
配置脚本
- 打开表单关联的表格:在Form界面点击「回应」→「查看表格」,打开对应的Google Sheets。
- 进入脚本编辑器:在表格顶部菜单栏选择「扩展程序」→「Apps Script」。
- 替换默认代码:删除编辑器里的所有内容,粘贴下面的代码:
// 请替换为你的表单ID和目标问题标题 const FORM_ID = "你的Google Form ID"; const TARGET_QUESTION_TITLE = "签名列表"; function onFormSubmit(e) { // 获取表单实例 const form = FormApp.openById(FORM_ID); let targetItem; // 定位到目标段落文本问题 const items = form.getItems(); for (const item of items) { if (item.getTitle() === TARGET_QUESTION_TITLE && item.getType() === FormApp.ItemType.PARAGRAPH_TEXT) { targetItem = item.asParagraphTextItem(); break; } } if (!targetItem) { console.log("未找到指定的目标问题,请检查标题是否正确"); return; } // 获取表格中的所有提交数据(跳过表头行) const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const allData = sheet.getDataRange().getValues().slice(1); // 整理签名列表:过滤空数据,格式化为「姓名, 部门」 const signatureList = allData .filter(row => row[0] && row[2]) // 索引对应表格列:0是姓名列,2是部门列,根据实际列顺序调整 .map(row => `${row[0]}, ${row[2]}`) .join("\n"); // 更新目标问题的展示内容 targetItem.setDefaultValue(signatureList); }
关键配置说明
- 替换FORM_ID:打开Google Form,地址栏中
d/与/edit之间的字符串就是表单ID,比如https://docs.google.com/forms/d/abc123xyz/edit里的abc123xyz。 - 调整列索引:代码里
row[0]对应表格第1列(姓名),row[2]对应第3列(部门),如果你的表格列顺序不同,要对应修改索引(索引从0开始)。
设置触发条件
- 在脚本编辑器左侧点击「触发器」图标(闹钟形状)。
- 点击「添加触发器」:
- 选择要运行的函数:
onFormSubmit - 选择部署来源:「从 spreadsheet」
- 选择事件类型:「表单提交」
- 选择要运行的函数:
- 点击「保存」,按提示完成授权(授权时若提示不安全,选择「高级」→「前往XX项目」即可,这是自定义脚本的正常授权流程)。
完成后,每当有新用户提交表单,脚本会自动更新表单里的签名列表区域,将所有已提交的姓名和部门按「姓名, 部门」格式展示出来。
内容的提问来源于stack exchange,提问作者Valay Agarawal
相关产品推荐
相关产品推荐

