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

Google Sheets Apps Script需求:匹配用户邮箱后过滤Leads表行

解决方案:基于用户邮箱自动过滤Google Sheets数据

以下是实现需求的完整Apps Script代码,你可以直接复制到Google Sheets的脚本编辑器中使用:

function filterLeadsByCurrentUser() {
  // 获取当前Spreadsheet实例
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // 获取两个目标工作表
  const userSheet = ss.getSheetByName('User');
  const leadsSheet = ss.getSheetByName('Leads');
  
  if (!userSheet || !leadsSheet) {
    SpreadsheetApp.getUi().alert('未找到指定工作表,请检查标签名是否正确');
    return;
  }
  
  // 获取当前操作用户的邮箱
  const currentUserEmail = Session.getActiveUser().getEmail();
  
  // 读取User表的所有数据(默认邮箱在A列、姓名在B列,可根据实际结构调整索引)
  const userData = userSheet.getDataRange().getValues();
  
  // 匹配当前用户对应的姓名
  let userName = null;
  for (const row of userData) {
    if (row[0] === currentUserEmail) {
      userName = row[1];
      break;
    }
  }
  
  if (!userName) {
    SpreadsheetApp.getUi().alert('未在User表中找到当前用户的信息');
    return;
  }
  
  // 先清除之前的筛选状态,显示所有行
  leadsSheet.showRows(1, leadsSheet.getMaxRows());
  
  // 遍历Leads表,过滤出O列(第15列,数组索引为14)匹配姓名的行
  const leadsData = leadsSheet.getDataRange().getValues();
  for (let i = 1; i < leadsData.length; i++) { // 跳过表头行(假设第1行是表头)
    const rowName = leadsData[i][14];
    if (rowName !== userName) {
      leadsSheet.hideRows(i + 1); // 表格行号从1开始,所以索引i对应行号i+1
    }
  }
}

关键逻辑说明

  • 用户身份获取:Session.getActiveUser().getEmail()用于获取当前操作用户的邮箱,首次运行脚本需要授权获取用户身份权限。
  • 用户信息匹配:遍历User表数据找到对应邮箱的姓名,若你的表格中邮箱/姓名列位置不同,只需调整row[0](邮箱列索引)和row[1](姓名列索引)即可。
  • 行过滤操作:先重置所有行的显示状态,再逐个检查Leads表O列的姓名,不匹配则隐藏该行,确保用户只能看到自己负责的数据。
  • 异常处理:加入了工作表不存在、用户未找到的弹窗提示,避免脚本无意义报错。

额外优化建议

  • 若需要打开表格自动执行过滤,添加以下代码即可:
function onOpen() {
  filterLeadsByCurrentUser();
}
  • 也可以给表格添加自定义菜单,方便手动触发:
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('数据过滤')
    .addItem('筛选我的Leads', 'filterLeadsByCurrentUser')
    .addToUi();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:24:56