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

如何快速实现Google Sheet每行仅对指定用户开放编辑权限

方案1:使用Google Apps Script批量设置行权限(推荐,适合100条以上数据)
  • 打开你的Google Sheet,点击顶部菜单栏「扩展程序」→「Apps Script」打开脚本编辑器
  • 清空默认生成的代码,粘贴以下代码:
function setRowPermissions() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const allData = sheet.getDataRange().getValues();
  
  // 可根据你的表格情况修改以下三个参数
  const EMAIL_COLUMN = 1; // 存储用户邮箱的列号,A列对应1、B列对应2,以此类推
  const START_ROW = 2; // 第一个用户所在的行号,如有1行表头则填2
  const EDIT_RANGE = "B:F"; // 允许用户编辑的列范围,需要整行可编辑则改为`${row}:${row}`

  for (let i = START_ROW - 1; i < allData.length; i++) {
    const userEmail = allData[i][EMAIL_COLUMN - 1];
    const row = i + 1;
    // 跳过空邮箱、格式无效的行
    if (!userEmail || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(userEmail)) continue;

    // 锁定当前行的目标范围,仅所有者可编辑
    const targetRange = sheet.getRange(`${EDIT_RANGE.replace(/\d/g, '')}${row}`);
    const protection = targetRange.protect().setDescription(`用户权限行_${row}_${userEmail}`);
    protection.removeEditors(protection.getEditors());
    if (protection.canDomainEdit()) protection.setDomainEdit(false);
    // 添加对应用户的编辑权限
    protection.addEditor(userEmail);
  }
  SpreadsheetApp.getUi().alert("所有行权限配置完成");
}
  • 保存项目,点击运行按钮,首次运行需要完成授权:出现「此应用未经验证」提示属于正常情况,点击「高级」→「前往你的项目名称」即可继续授权
  • 脚本运行完成后,所有用户自动获得对应行的编辑权限,其他行对他们为只读状态
方案2:手动批量配置(无代码,适合少量数据)
  • 先设置整表默认权限为只读:点击右上角「共享」,通用权限设为「受限」,仅你自己可编辑
  • 点击顶部菜单栏「数据」→「保护工作表和范围」,右侧弹出配置面板
  • 点击「添加工作表或范围」,选择「范围」,输入第一个用户的可编辑行范围,点击「设置权限」,选择「仅你自己可以编辑此范围」,再点击「添加编辑者」填入对应用户邮箱后保存
  • 重复操作完成所有行配置,150条数据熟练操作10分钟内可完成
注意事项
  • 配置权限前建议先备份整份表格,避免操作失误丢失原有权限配置
  • 后续新增用户时,只需在表格末尾补充对应行和邮箱,重新运行一次脚本即可自动完成新用户权限配置
  • 用户打开表格时仅自己的对应行处于可编辑状态,其余行都会被锁定无法修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:09:02