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

如何在Google Sheet中检测用户邮箱并写入单元格,管控共享权限?

Google Sheet 用户权限校验实现方案

一、获取当前用户邮箱并写入单元格

使用Google Apps Script编写代码,获取当前登录用户的邮箱并写入指定单元格:

function getCurrentUserEmail() {
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const userEmail = Session.getActiveUser().getEmail();
  // 将邮箱写入A1单元格,可自行修改目标位置
  activeSheet.getRange("A1").setValue(userEmail);
  return userEmail;
}

二、与受限用户列表比对并拦截无权限用户

假设受限用户列表存储在名为Sheet2的工作表A列(从A1开始),扩展代码实现权限校验:

function checkUserPermission() {
  const mainSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const restrictedSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
  const userEmail = Session.getActiveUser().getEmail();

  // 写入当前用户邮箱到A1
  mainSheet.getRange("A1").setValue(userEmail);

  // 读取所有受限用户邮箱
  const restrictedEmails = restrictedSheet.getRange("A1:A" + restrictedSheet.getLastRow()).getValues().flat();

  // 校验用户权限
  if (!restrictedEmails.includes(userEmail) && userEmail !== "") {
    SpreadsheetApp.getUi().alert("你无此表格的访问权限!");
    // 可选:记录无权限用户信息到B1单元格
    mainSheet.getRange("B1").setValue("无权限访问:" + userEmail);
  } else if (userEmail === "") {
    // 拦截匿名用户
    SpreadsheetApp.getUi().alert("请登录Google账号后访问!");
  }
}

三、设置自动触发

  1. 打开Google Sheet,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 将代码粘贴到脚本编辑器,保存项目
  3. 点击左侧「触发器」图标,添加新触发器:
    • 选择函数:checkUserPermission
    • 事件源:「从电子表格」
    • 事件类型:「打开时」
  4. 保存触发器,首次运行按提示完成权限验证即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:15:25