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

Google Sheets通过Apps Script实现勾选复选框自动填用户名

Google Sheets 复选框自动填充勾选人姓名实现方案

前置准备

  • 打开你的任务核对表,点击「扩展程序」-「Apps 脚本」打开脚本编辑器
  • 在脚本编辑器左侧边栏找到「服务」板块,点击旁边的+号,在弹出的服务列表里找到「Admin Directory API」,点击添加完成服务授权
  • 提前确认你的表格结构:固定复选框列为单独一列,姓名填充列放在复选框右侧,记录下两列对应的列号(A列为1,B列为2,以此类推)和工作表名称

实现代码

将以下代码粘贴到脚本编辑器里,根据你自己的表格实际情况修改开头CONFIG里的配置参数:

// 自定义配置项,按需修改
const CONFIG = {
  checkboxCol: 2, // 复选框所在列号,示例为B列
  nameCol: 3, // 勾选人姓名要填充的列号,示例为C列
  targetSheetName: "每日任务核对" // 存放核对清单的工作表名称
}

function onEditTrigger(e) {
  const editRange = e.range;
  const activeSheet = editRange.getSheet();
  const colOffset = CONFIG.nameCol - CONFIG.checkboxCol;

  // 过滤非目标范围的编辑操作
  if (activeSheet.getName() !== CONFIG.targetSheetName || editRange.getColumn() !== CONFIG.checkboxCol) {
    return;
  }

  // 取消勾选时清空对应姓名
  if (editRange.getValue() === false) {
    editRange.offset(0, colOffset).clearContent();
    return;
  }

  // 勾选时查询用户信息填充
  try {
    const triggerUser = e.user;
    const userEmail = triggerUser.getEmail();
    let fillText = userEmail;
    // 从Workforce Directory查询用户全名
    if (userEmail) {
      const directoryUser = AdminDirectory.Users.get(userEmail);
      fillText = directoryUser.name.fullName;
    }
    editRange.offset(0, colOffset).setValue(fillText);
  } catch (error) {
    // 接口调用失败时兜底填充
    editRange.offset(0, colOffset).setValue(e.user.getEmail() || "用户信息获取失败");
    console.log(`填充失败,错误信息:${error.message}`);
  }
}

触发器配置

代码保存后,需要配置可安装编辑触发器才能正常调用Directory接口(默认简单触发器没有目录读取权限):

  • 点击脚本编辑器左侧边栏的时钟图标进入触发器页面
  • 点击右下角「添加触发器」,按以下选项配置:
    • 选择要运行的函数:onEditTrigger
    • 选择事件来源:来自电子表格
    • 选择事件类型:编辑时
  • 点击保存,按照弹窗提示完成账号授权即可

注意事项

  • 仅同Google Workspace域内的账号触发编辑时,才能正常从Workforce Directory拉取用户姓名,外部访客账号受目录权限限制无法读取完整信息
  • 如果后续调整了列位置或者工作表名称,只需要修改CONFIG里的对应参数即可,不需要改动核心逻辑
  • 触发时如果因为权限问题拿不到用户全名,会自动填充用户邮箱作为兜底,不会出现空白单元格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:48:11