Google Apps Script无法从表单填充Docs模板问题求助
问题解决:Google Docs模板无法替换正文文本
核心错误:变量名不匹配
你代码中将文档正文赋值给了text变量,但后续调用replaceText时使用了未定义的body变量,这是正文完全未被修改的直接原因。另外还有语法错误:copy.getID()需改为copy.getId()(Google Apps Script方法名采用驼峰式,小写d)。
修正后的代码
function autofillgoogledocfromform(e) { // 注意:e.values[0]是表单提交时间,需根据实际字段顺序调整索引 var zero = e.values[1]; var one = e.values[2]; var templateFile = DriveApp.getFileById("1lcaeliMu3xP2L0--YJMSeLFY1uHq81-1g7rXvgIryfY"); var templateresponsefolder = DriveApp.getFolderById("1bVSRMV_NGI9J2RzWhOMekT77yLtKDjGd"); var copy = templateFile.makeCopy(zero, templateresponsefolder); var doc = DocumentApp.openById(copy.getId()); var body = doc.getBody(); body.replaceText('{{one}}', one); body.replaceText('{{zero}}', zero); body.appendParagraph("A paragraph."); doc.saveAndClose(); }
额外排查点
- 确认模板中的
{{zero}}和{{one}}是纯文本,无隐藏格式(比如特殊字体、超链接,即使视觉一致也可能导致匹配失败) - 核对
e.values索引:表单响应数组e.values第一个元素是提交时间,第一个表单字段对应e.values[1],第二个字段对应e.values[2],需和表单字段顺序对应 - 确保脚本已获得足够权限:首次运行时会弹出权限请求,需允许其访问Google Drive和Google Docs
内容的提问来源于stack exchange,提问作者Trevor Eakes
相关产品推荐
相关产品推荐

