You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google表单自动填充Google Doc失效,关联Google Sheet不更新新响应

问题:Google Form新响应无法同步至关联Sheet,也无法自动生成目标Google Doc

我按照教程步骤,尝试将Google Form的新响应自动复制到Google Doc中,但提交新响应后出现两个问题:

  1. 目标文件夹未生成对应的Google Doc
  2. 关联的Google Sheet未同步新响应,仅能在Google Form的响应页面查看

我已尝试重新提交响应、刷新Sheet和目标文件夹,但问题仍未解决。我对编程不太熟悉,这是第二次编写相关代码。以下是使用的脚本:

function autoFillGoogleDocFromForm(e) {
  var timestamp = e.values[0];
  var upMail = e.values[1];
  var agreement = e.values[2];
  var fullName = e.values[3];
  var livedName = e.values[4];
  var pronouns = e.values[5];
  var age = e.values[6];
  var birthday = e.values[7];
  var contactNumber = e.values[8];
  var altEmail = e.values[9];
  var degreeProgram = e.values[10];
  var yearLevel = e.values[11];
  var facebookLink = e.values[12];
  var voiceLesson = e.values[13];
  var singingExp = e.values[14];
  var others = e.values[15];
  var graphicDesign = e.values[16];
  var aof = e.values[17];
  var screeningDateA = e.values[18];
  var screeningDateB = e.values[19];

  var templateFile = DriveApp.getFileById("19AYo5zEij9iWAN5pBaV8HNgaCwqsaRGvpDYd9X_p1rg");
  var templateResponseFolder = DriveApp.getFolderById("1S1yBfh6W30YQD5Jnd72dD8wREVkQund-");

  var copy = templateFile.makeCopy(fullName,templateResponseFolder);
  
  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody();

  body.replaceText("{{AOF}}", aof);
  body.replaceText("{{Name}}", fullName);
  body.replaceText("{{Pronouns}}", pronouns);
  body.replaceText("{{Year}}", yearLevel);
  body.replaceText("{{Course}}", degreeProgram);
  body.replaceText("{{LivedName}}", livedName);
  body.replaceText("{{Age}}", age);
  body.replaceText("{{Birthday}}", birthday);
  body.replaceText("{{ContactNumber}}", contactNumber);
  body.replaceText("{{AltMail}}", altEmail);
  body.replaceText("{{Facebook}}", facebookLink);
  body.replaceText("{{UPMail}}", upMail);
  body.replaceText("{{VoiceLesson}}", voiceLesson);
  body.replaceText("{{SingingExp}}", singingExp);
  body.replaceText("{{Others}}", others);
  body.replaceText("{{GraphicDesign}}", graphicDesign);
  
  doc.saveAndClose();
}

排查与解决步骤

第一步:修复Google Sheet与Form的同步问题

Sheet不同步会导致表单提交触发器无法触发,这是核心前提:

  • 打开Google Form,点击右上角「响应」标签,点击「关联表单」的表格图标,确认选中的是目标Sheet。若未关联,重新选择关联;若已关联,尝试断开后重新绑定。
  • 检查Sheet权限:确保你的账号拥有编辑权限,且Form响应设置中未开启「限制收集」类选项(比如仅收集特定邮箱但未允许同步)。

第二步:检查脚本触发器配置

脚本需要绑定「表单提交」触发器才能自动运行:

  • 打开关联的Google Sheet,点击「扩展程序」→「Apps Script」进入脚本编辑器。
  • 点击左侧时钟样式的「触发器」图标,检查是否存在符合以下配置的触发器:
    • 函数:autoFillGoogleDocFromForm
    • 事件源:「表单提交」
    • 事件类型:「来自表单的提交」
  • 若无该触发器,点击「添加触发器」,按上述配置选择后保存,保存时需授权脚本访问Drive和Docs,务必完成授权。

第三步:验证脚本关键信息

  • 核对文件/文件夹ID:打开模板Doc和目标文件夹,地址栏中d/后的字符串即为ID,确认代码中templateFile和templateResponseFolder的ID与实际完全一致,无字符遗漏或多余。
  • 避免空文件名:若表单「全名」字段可能为空,makeCopy用空字符串命名会导致Doc生成失败或名称异常,修改复制行代码:
    var copy = templateFile.makeCopy(fullName || "未命名响应", templateResponseFolder);
    

第四步:手动测试脚本逻辑

添加测试函数验证脚本本身是否正常:

function testAutoFill() {
  // 模拟表单提交的测试数据,按你的表单字段顺序填写
  var testValues = [
    "2024-05-20 10:00:00",
    "test@example.com",
    "同意",
    "测试姓名",
    "测试常用名",
    "she/her",
    "21",
    "2003-05-20",
    "987654321",
    "test_alt@example.com",
    "软件工程",
    "大三",
    "https://facebook.com/testuser",
    "否",
    "1年",
    "曾参加校园歌唱比赛",
    "不会",
    "AOF测试项",
    "2024-05-27",
    "2024-05-28"
  ];
  autoFillGoogleDocFromForm({values: testValues});
}
  • 在脚本编辑器中选择testAutoFill函数,点击运行按钮,查看目标文件夹是否生成Doc。
  • 若运行失败,查看左侧「执行」图标下的日志,根据报错信息修复(比如权限不足、模板Doc不存在等)。

内容的提问来源于stack exchange,提问作者Yonina Aisha Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:07:32