You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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("密码错误,无权限访问该标签页");
    }
  }
}

配置与部署步骤

  1. 打开目标Google Sheets,点击菜单栏「扩展程序」→「Apps Script」进入脚本编辑器
  2. 粘贴上述代码,修改TARGET_SHEET_NAME和VALID_PASSWORD为实际值
  3. 保存项目(点击保存按钮,给项目命名比如「标签页权限保护」)
  4. 创建触发器:
    • 点击编辑器左侧时钟样式的「触发器」图标
    • 点击「添加触发器」按钮
    • 配置参数:
      • 运行函数:onChange
      • 部署类型:「Head deployments」
      • 事件源:「从电子表格」
      • 事件类型:「变更」
    • 点击「保存」,按提示完成脚本权限授权

关键细节说明

  • onChange触发器:会响应表格各类变更,通过e.changeType过滤出标签页状态变更事件(对应OTHER类型)
  • 状态判断:用isSheetVisible()检测标签页是否刚从隐藏变为显示,避免重复触发验证
  • 密码交互:通过Browser.inputBox弹出系统级输入框,完成密码验证逻辑

安全提示

  • 硬编码密码存在风险,可改用「脚本属性」存储密码:
    1. 脚本编辑器中点击「项目设置」→「显示脚本属性」
    2. 添加键值对(如键DB_AUTH_PWD,值为你的密码)
    3. 代码中替换VALID_PASSWORD为:PropertiesService.getScriptProperties().getProperty("DB_AUTH_PWD")
  • 仅授权信任用户拥有脚本编辑权限,防止密码被篡改

内容的提问来源于stack exchange,提问作者LolaAg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:06