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

Google表单提交后无法生成PDF,脚本执行时e.namedvalue行报错

Google表单提交生成PDF报错解决方案

报错核心原因

你收到的error in line 2 e.namedvalue(e)报错,本质是afterFormSubmit函数接收的事件对象e不符合预期,或是后续字段读取、权限配置异常,对应解决方法如下:

1. 触发方式配置错误

事件对象e仅在表单提交自动触发脚本时才会自动生成,如果你直接在Apps Script编辑器手动点击运行按钮,系统不会传入e对象,自然会报属性读取错误。
配置正确触发的步骤:

  • 打开当前脚本对应的Apps Script项目,点击左侧菜单栏「触发器」选项
  • 点击右下角「添加触发器」,按以下参数配置:
    • 选择要运行的函数:afterFormSubmit
    • 选择要运行的部署:Head(默认)
    • 选择事件来源:来自表单
    • 选择事件类型:表单提交时
  • 保存后按照提示完成账号权限授权,提交测试表单验证即可。

2. 表单字段名称不匹配

e.namedValues的键名必须和Google表单的字段名称完全一致,大小写、空格、特殊符号都不能有差异,否则读取对应字段会返回undefined,调用[0]时报错。
验证字段名方法:
在afterFormSubmit函数首行添加日志代码:

console.log(JSON.stringify(e.namedValues))

提交一次测试表单后,到Apps Script左侧「执行记录」中查看打印的字段名,完全复制对应字段名替换代码中的键名即可。

3. 代码细节修复

你的现有代码缺少文档保存步骤,会导致替换的内容未同步到PDF中,且存在语法缺漏,修正后的完整代码如下:

function afterFormSubmit(e) {
  // 新增判断防止手动运行报错
  if (!e || !e.namedValues) return;
  const info = e.namedValues;
  createPDF(info);
}

function createPDF(info) {
  const pdfFolder = DriveApp.getFolderById("1BSBIOPWFoc7o2nbX8XT23C85_pBq02VE");
  const tempfolder = DriveApp.getFolderById("1xSl7VhVwHAmIcVOdXVUlzwZcZ27q3hqU");
  const templateDoc = DriveApp.getFileById("1vc7rTRU88LDF07hJs5Waf4OIWy2pAeoFNkB8UBpDnqI");
  const newTempFile = templateDoc.makeCopy(tempfolder);
  const opendoc = DocumentApp.openById(newTempFile.getId());
  const body = opendoc.getBody();
  body.replaceText("{dor}", info['Timestamp'][0]);
  body.replaceText("{fn}", info['Name ( Nama )'][0]);
  body.replaceText("{nric}", info['NRIC/ID/PASSPORT ( No kad pengenalan/pasport )'][0]);
  // 新增保存关闭文档步骤,确保修改生效
  opendoc.saveAndClose();

  const blobPDF = newTempFile.getAs(MimeType.PDF);
  const pdfFile = pdfFolder.createFile(blobPDF).setName(info['Name ( Nama )'][0] + " " + info['Timestamp'][0]);
  // 可选:自动删除临时文件节省空间
  newTempFile.setTrashed(true);
}

4. 权限与ID验证

  • 确认代码中三个ID(PDF文件夹ID、临时文件夹ID、模板文档ID)输入正确,且脚本所属的Google账号对三个资源均有编辑权限
  • 确认模板文件为Google Docs原生格式,不是上传的Word、PDF等其他格式

内容的提问来源于stack exchange,提问作者helios99

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:21:01