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

求Google Sheets生成含时间戳用户名的编辑审计日志脚本

Google Sheets 编辑审计日志脚本实现方案

前置准备

  • 打开你需要添加审计功能的目标Google Sheets表格
  • 新建一个名为审计日志的工作表,在第一行依次填入表头:编辑时间、操作用户、编辑位置、修改前值、修改后值,表头可以根据你的需求调整

操作步骤

  1. 点击表格顶部菜单栏的「扩展程序」→「Apps 脚本」,打开脚本编辑器,清空编辑器内默认的所有代码
  2. 粘贴如下代码到编辑器中:
// 编辑事件自动触发函数,无需手动运行
function onEdit(e) {
  // 配置项:如果你的审计日志工作表改了名字,这里同步修改引号内的名称即可
  const LOG_SHEET_NAME = '审计日志';

  const editRange = e.range;
  const editSheet = editRange.getSheet();
  // 在审计日志工作表内的操作不记录,避免循环触发
  if (editSheet.getName() === LOG_SHEET_NAME) return;

  const logSheet = e.source.getSheetByName(LOG_SHEET_NAME);
  if (!logSheet) return;

  // 收集审计所需信息
  const editTime = new Date();
  const operateUser = e.user ? e.user.getEmail() : '匿名用户';
  const editCell = `${editSheet.getName()}!${editRange.getA1Notation()}`;
  const beforeValue = e.oldValue || '空值/批量编辑';
  const afterValue = e.value || '空值/批量编辑';

  // 写入日志到最后一行
  logSheet.appendRow([editTime, operateUser, editCell, beforeValue, afterValue]);
  // 自动格式化时间戳,不需要可以删除下一行
  logSheet.getRange(logSheet.getLastRow(), 1).setNumberFormat('yyyy-mm-dd hh:mm:ss');
}
  1. 点击编辑器顶部的保存按钮,自定义项目名称(比如「表格审计工具」)即可
  2. 首次使用需要完成授权:点击编辑器顶部的运行按钮,选择onEdit函数,按照页面提示完成授权即可。如果遇到「Google未验证应用」的提示,点击「高级」→「转到[你的项目名](不安全)」即可继续授权,脚本为你自己编写,不存在安全风险

功能说明

  • 所有非审计日志工作表的编辑操作都会自动触发日志记录,不需要手动运行任何功能
  • 完全覆盖你需要的三类审计信息:
    • 精确到秒的编辑时间戳,自动适配你表格的时区
    • 操作人的Google账号邮箱,匿名编辑的用户会显示为「匿名用户」
    • 被编辑单元格的位置、修改前后的数值,信息更完整便于追溯
  • 无需额外设置触发器,onEdit是Google Sheets内置的简单触发器,授权完成后自动生效

注意事项

  • 批量粘贴、删除大范围单元格的操作仅会记录首个单元格的修改内容,这是Google Sheets官方接口的限制
  • 如果不需要记录编辑位置和修改前值,可以删除代码中对应行里的相关参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 02:03:03