如何用AppScript实现Google Sheets特定标签页取消隐藏的密码验证
Google Sheets 标签页取消隐藏密码验证实现方案
实现思路
通过Google Apps Script的onChange触发器监听表格变更事件,当检测到指定的数据库标签页被取消隐藏时,弹出密码输入框验证:
- 密码正确:允许标签页保持显示
- 密码错误:提示无权限并立即重新隐藏标签页
完整代码实现
// 配置项:替换为你的目标标签页名称和验证密码 const TARGET_SHEET_NAME = "数据库"; // 修改为你的数据库标签页名称 const VALID_PASSWORD = "your_auth_password"; // 修改为你的验证密码 function onChange(e) { // 仅处理标签页显示状态变更的事件 if (e.changeType !== "OTHER") return; const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const targetSheet = spreadsheet.getSheetByName(TARGET_SHEET_NAME); // 检查目标标签页是否存在且刚被取消隐藏 if (targetSheet && targetSheet.isSheetVisible()) { const inputPassword = Browser.inputBox("授权验证", "请输入访问该标签页的密码", Browser.Buttons.OK_CANCEL); if (inputPassword === VALID_PASSWORD) { Browser.msgBox("验证通过,可正常访问"); } else { // 密码错误,重新隐藏标签页并提示 targetSheet.hideSheet(); Browser.msgBox("密码错误,无权限访问该标签页"); } } }
配置与部署步骤
- 打开目标Google Sheets,点击菜单栏「扩展程序」→「Apps Script」进入脚本编辑器
- 粘贴上述代码,修改
TARGET_SHEET_NAME和VALID_PASSWORD为实际值 - 保存项目(点击保存按钮,给项目命名比如「标签页权限保护」)
- 创建触发器:
- 点击编辑器左侧时钟样式的「触发器」图标
- 点击「添加触发器」按钮
- 配置参数:
- 运行函数:
onChange - 部署类型:「Head deployments」
- 事件源:「从电子表格」
- 事件类型:「变更」
- 运行函数:
- 点击「保存」,按提示完成脚本权限授权
关键细节说明
onChange触发器:会响应表格各类变更,通过e.changeType过滤出标签页状态变更事件(对应OTHER类型)- 状态判断:用
isSheetVisible()检测标签页是否刚从隐藏变为显示,避免重复触发验证 - 密码交互:通过
Browser.inputBox弹出系统级输入框,完成密码验证逻辑
安全提示
- 硬编码密码存在风险,可改用「脚本属性」存储密码:
- 脚本编辑器中点击「项目设置」→「显示脚本属性」
- 添加键值对(如键
DB_AUTH_PWD,值为你的密码) - 代码中替换
VALID_PASSWORD为:PropertiesService.getScriptProperties().getProperty("DB_AUTH_PWD")
- 仅授权信任用户拥有脚本编辑权限,防止密码被篡改
内容的提问来源于stack exchange,提问作者LolaAg
相关产品推荐
相关产品推荐

