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

使用Google Apps Script实现Google表单自动填充文档报错求助

解决Google Apps Script报错:TypeError: Cannot read properties of undefined (reading 'values')

报错核心原因

这个函数是表单提交触发的专用函数,e参数是Google Apps Script在表单收到新回复时自动传入的事件对象。如果直接在脚本编辑器里点击「运行」,e会是undefined,自然无法读取e.values。

完整解决步骤

1. 先修正代码里的变量拼写错误

你的代码里存在多处变量名不一致的问题,会导致后续替换内容失败,同时要替换占位符为实际ID:

function autoFillGoogleDocsFromForm(e) {
  // 从表单响应事件中获取数据(e.values[0]是提交时间,后续对应表单字段顺序)
  var hoten = e.values[1];
  var sodienthoai = e.values[2];
  var ngaysinh = e.values[3];
  var image = e.values[4];

  // 替换为你的模板文档ID和目标文件夹ID
  var templateFile = DriveApp.getFileById("你的文档模板ID");
  var templateResponseFolder = DriveApp.getFolderById("你的目标文件夹ID");

  // 复制模板文档并命名
  var copy = templateFile.makeCopy('Họ và Tên ' + hoten, templateResponseFolder);
  var doc = DocumentApp.openById(copy.getId());
  var body = doc.getBody();

  // 替换文档中的占位符
  body.replaceText("{{HoTen}}", hoten);
  body.replaceText("{{Sdt}}", sodienthoai);
  body.replaceText("{{Birthday}}", ngaysinh);
  body.replaceText("{{ImageUrl}}", image);

  doc.saveAndClose();
}

2. 绑定表单提交触发器

不能手动运行这个函数,必须设置自动触发:

  • 打开脚本编辑器,点击左侧时钟形状的「触发器」图标
  • 点击「添加触发器」
  • 配置如下选项:
    • 要运行的函数:autoFillGoogleDocsFromForm
    • 部署来源:Head
    • 事件来源:表单提交
    • 事件类型:来自表单
  • 点击「保存」,按提示完成脚本授权(遇到“未验证应用”提示时,选「高级」→「转到脚本」即可)

3. 测试功能

手动提交一次Google表单,检查目标文件夹是否生成了填充好的文档。

额外注意事项

  • 确认e.values的索引和你的表单字段顺序一致:e.values[0]是提交时间,后续依次对应表单的第1、第2个字段,若表单字段顺序调整,要同步修改索引。

内容的提问来源于stack exchange,提问作者Mai Phước Hoàng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:55:59