无需进入编辑器运行,Google Docs脚本应用的启动方案有哪些?
Google Docs 脚本免编辑器启动+防误删方案
一、自定义顶部菜单(最简单的启动方式)
实现逻辑
借助Google Apps Script的onOpen()触发函数,在文档打开时自动生成自定义顶部菜单,点击菜单选项就能直接运行你的函数,完全不用进入脚本编辑器。
脚本连接步骤
- 打开目标Google Docs文档,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器。
- 替换默认代码为以下内容(把
myCustomFunction()替换成你自己的业务函数):
// 文档打开时自动创建自定义菜单 function onOpen() { const ui = DocumentApp.getUi(); ui.createMenu('我的工具') .addItem('运行我的脚本', 'myCustomFunction') .addToUi(); } // 你的业务函数示例 function myCustomFunction() { // 这里写你的脚本逻辑,比如修改文档内容、生成统计数据等 DocumentApp.getUi().alert('脚本运行成功!'); }
- 点击脚本编辑器顶部的「保存」按钮,给项目命名(比如「文档专属工具」)。
- 首次运行需完成授权:点击「运行」→选择
onOpen(),按提示完成权限验证(仅你需要操作,同事打开文档无需重复授权)。 - 刷新Google Docs文档,顶部菜单栏会多出「我的工具」选项,点击就能直接触发脚本。
防误删设置
- 绑定到文档的脚本默认仅拥有者和被授予脚本编辑权限的人可修改,同事若只有文档编辑权限,点击「扩展程序」→「Apps Script」会提示无权限,看不到脚本内容。
- 若必须给同事文档编辑权限,可单独设置脚本权限:在脚本编辑器点击「共享」→「权限设置」,将脚本访问权限设为「仅限特定人员」,仅添加你自己,确保同事无法修改脚本。
二、自定义侧边栏(更直观的操作入口)
实现逻辑
用HtmlService创建嵌入文档的侧边栏,在侧边栏放置交互按钮,点击即可触发脚本函数,适合需要可视化操作界面的场景。
脚本连接步骤
- 打开脚本编辑器,创建两个文件:一个
.gs脚本文件,一个.html侧边栏文件。 - 在
.gs文件中写入以下代码:
// 文档打开时创建菜单,用于打开侧边栏 function onOpen() { const ui = DocumentApp.getUi(); ui.createMenu('我的工具') .addItem('打开工具侧边栏', 'showSidebar') .addToUi(); } // 加载并显示侧边栏 function showSidebar() { const html = HtmlService.createHtmlOutputFromFile('Sidebar') .setTitle('我的脚本工具'); DocumentApp.getUi().showSidebar(html); } // 供侧边栏调用的业务函数 function runMyScript() { // 这里写你的脚本逻辑 DocumentApp.getUi().alert('侧边栏脚本运行成功!'); }
- 点击脚本编辑器左侧「文件」→「新建」→「HTML文件」,命名为
Sidebar,写入以下内容:
<!DOCTYPE html> <html> <body style="padding: 15px;"> <h3>我的脚本工具</h3> <button onclick="google.script.run.runMyScript()" style="padding: 8px 16px; cursor: pointer;"> 运行脚本 </button> <script> // 可选:脚本运行成功后的回调处理 google.script.run.withSuccessHandler(() => { alert('执行完成!'); }).runMyScript(); </script> </body> </html>
- 保存并授权
onOpen()函数,刷新文档后,点击「我的工具」→「打开工具侧边栏」,就能看到带按钮的侧边栏,点击按钮即可运行脚本。
防误删设置
和自定义菜单方案一致,通过设置脚本访问权限为「仅限特定人员」,同事无法修改脚本;侧边栏的HTML内容存储在脚本项目中,同事看不到也无法编辑。
关键注意事项
- 首次授权仅需文档/脚本拥有者完成,后续同事打开文档无需重复操作。
- 修改脚本时,直接回到「扩展程序」→「Apps Script」编辑,修改后刷新文档即可生效。
- 核心逻辑务必放在
.gs脚本文件中,前端HTML仅做触发操作,避免敏感数据暴露。
内容的提问来源于stack exchange,提问作者Cristian Cris
相关产品推荐
相关产品推荐

