AppScript创建Google Doc无法替换正文,报“Exception: Invalid argument: id”求助
问题分析与修复方案
核心错误原因
报错“Exception: Invalid argument: id”和文本替换失效,根源是脚本里的方法名大小写不符合Google Apps Script的驼峰命名规则:
copy.getID()→ 正确写法为copy.getId()doc.getbody()→ 正确写法为doc.getBody()body.replacetext()→ 正确写法为body.replaceText()
修正后的完整脚本
function AutoFillVTQFromForm(e) { var Timestamp = e.values[0]; var Name = e.values[1]; var Company = e.values[2]; var TraditionalModern = e.values[3]; var TMExplanation = e.values[4]; var BoldConfident = e.values[5]; var BCExplanation = e.values[6]; var RationalEmotional = e.values[7]; var REExplanation = e.values[8]; var ExclusiveInclusive = e.values[9]; var EIExplanation = e.values[10]; var SeriousPlayful = e.values[11]; var SPExplanation = e.values[12]; var ConversationalCorporate = e.values[13]; var CCExplanation = e.values[14]; var SophisticatedSimple = e.values[15]; var SSExplanation = e.values[16]; var BrandVoiceNo = e.values[17]; var BrandVoiceYes = e.values[18]; var Competitors = e.values[19]; var TemplateFile = DriveApp.getFileById("1mJNG41sjaJV5Mwh3dDNSMPxY9LOmq8RfKDj7gL4Vnlc"); var TemplateResponseFolder = DriveApp.getFolderById("1Wxlkexc8RZ1EVBkUQLujlqZGtOaRNaDX"); var copy = TemplateFile.makeCopy(Company + " - " + Name + " - " + Timestamp, TemplateResponseFolder); // 修正方法名大小写 var doc = DocumentApp.openById(copy.getId()); var body = doc.getBody(); // 修正replaceText方法名大小写 body.replaceText("{{Timestamp}}", Timestamp); body.replaceText("{{Name}}", Name); body.replaceText("{{Company}}", Company); body.replaceText("{{TraditionalModern}}", TraditionalModern); body.replaceText("{{TMExplanation}}", TMExplanation); body.replaceText("{{BoldConfident}}", BoldConfident); body.replaceText("{{BCExplanation}}", BCExplanation); body.replaceText("{{RationalEmotional}}", RationalEmotional); body.replaceText("{{REExplanation}}", REExplanation); body.replaceText("{{ExclusiveInclusive}}", ExclusiveInclusive); body.replaceText("{{EIExplanation}}", EIExplanation); body.replaceText("{{SeriousPlayful}}", SeriousPlayful); body.replaceText("{{SPExplanation}}", SPExplanation); body.replaceText("{{ConversationalCorporate}}", ConversationalCorporate); body.replaceText("{{CCExplanation}}", CCExplanation); body.replaceText("{{SophisticatedSimple}}", SophisticatedSimple); body.replaceText("{{SSExplanation}}", SSExplanation); body.replaceText("{{BVDontLike}}", BrandVoiceNo); body.replaceText("{{BVDoLike}}", BrandVoiceYes); body.replaceText("{{Competitors}}", Competitors); doc.saveAndClose(); }
额外验证建议
- 确认Google Doc模板中的标签(如
{{Name}})无多余空格、特殊格式(加粗/斜体等),必须与脚本内的字符串完全匹配。 - 首次运行脚本时完成授权流程,确保脚本拥有Drive和Document的编辑权限。
内容的提问来源于stack exchange,提问作者Christine Peacock
相关产品推荐
相关产品推荐

