如何用Google Apps Script创建跨所有Google Docs的自定义菜单以应用模板
可行实现方案
方案1:部署私有Google Docs编辑器附加组件(全局所有Docs生效)
可以实现你需要的「名下所有Google Docs都显示自定义菜单」的需求,仅对你个人账号生效,无需公开审核:
- 访问script.google.com新建独立脚本项目(不要从单个Doc的脚本编辑器入口创建)
- 把现有功能代码粘贴到项目中,注意将触发函数名
OnOpen改为全小写onOpen,否则简单触发无法正常运行 - 配置项目清单:点击左侧「项目设置」,勾选「在编辑器中显示appsscript.json清单文件」,回到编辑器打开
appsscript.json,替换为以下配置:
{ "timeZone": "Asia/Shanghai", "dependencies": {}, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/documents.currentonly", "https://www.googleapis.com/auth/script.container.ui" ], "addOns": { "docs": { "onOpenTrigger": { "runFunction": "onOpen" }, "currentDocumentAccess": "WRITE" } } }
- 部署附加组件:点击右上角「部署」>「新建部署」,选择部署类型为「编辑器附加组件」,支持应用选择Google Docs,访问权限设置为「仅限我自己」,完成部署后任意Google Doc的扩展程序菜单中都会显示你的工具入口,点击即可加载自定义菜单。
方案2:文件夹专属模板方案(适配固定文件夹场景,操作更简单)
如果仅需要存放在固定文件夹的Doc支持该功能,无需全局所有Doc生效,这个方案门槛更低:
- 新建一个空白Google Doc,将你的脚本绑定到该Doc,测试功能正常运行
- 将该Doc设置为固定文件夹的默认新建模板:打开目标文件夹,点击「新建」> 点击「Google Docs」右侧的箭头>「从模板新建」,选择你创建好的带脚本的Doc作为该文件夹的默认模板
- 后续所有在该文件夹内新建的Doc都会自动继承模板内的脚本和自定义菜单,完全匹配你的使用需求。
修正后可直接使用的代码
你原代码中的触发函数名首字母大写不符合规则,修正版如下:
function onOpen(e) { DocumentApp.getUi().createMenu('Template Options') .addItem('Apply Customer Note Template', 'menuItem1') .addToUi() } function menuItem1() { var body = DocumentApp.getActiveDocument().getBody(); var OppTitle = body.appendParagraph("Opportunity Name"); OppTitle.setHeading(DocumentApp.ParagraphHeading.TITLE); OppTitle.setAlignment(DocumentApp.HorizontalAlignment.CENTER); // 此处保留你原有模板生成的其余逻辑 DocumentApp.getUi().alert('Customer Template applied.'); }
内容的提问来源于stack exchange,提问作者emkraft
相关产品推荐
相关产品推荐

