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

寻求Google Sheets特定列单元格变更的邮件/Slack通知代码方案

Google Sheets 特定列变更通知脚本(支持Gmail/Slack)

先修正原脚本的核心问题

原脚本的函数名拼写错误:onSpeEdit 应该改为 onEdit,这是Google Sheets简单触发器的标准函数名,否则无法自动触发。


一、优化后的Gmail通知版本

这个版本修复了触发问题,同时处理了单元格新增内容(无旧值)的场景,避免通知内容出现null:

function onEdit(e) {
  // 配置参数
  const TARGET_SHEET_NAME = 'mySheet'; // 目标工作表名称
  const TARGET_COLUMN = 1; // 目标列(A列=1,B列=2,以此类推)
  const RECIPIENT_EMAIL = 'yourEmail@gmail.com'; // 接收通知的邮箱

  // 获取触发事件的上下文信息
  const activeSheet = e.source.getActiveSheet();
  const activeRange = e.range;
  
  // 判断是否是目标工作表和目标列的变更
  if (activeSheet.getName() !== TARGET_SHEET_NAME || activeRange.getColumn() !== TARGET_COLUMN) {
    return; // 不符合条件直接退出
  }

  // 处理旧值为空的情况(比如新增内容)
  const oldValue = e.oldValue || '无';
  const newValue = e.value || '空值';

  // 发送邮件通知
  MailApp.sendEmail(
    RECIPIENT_EMAIL,
    'Google Sheets 内容变更通知',
    `变更位置:${activeRange.getA1Notation()}
旧值:${oldValue}
新值:${newValue}`
  );
}

二、Slack通知版本

如果需要发送到Slack,需要先在Slack工作区创建一个传入Webhook(在Slack Apps里搜索Incoming Webhooks,按指引生成专属URL),然后使用以下脚本:

注意:Slack API调用需要网络权限,简单触发器onEdit无法满足,需要创建可安装触发器:在脚本编辑器中点击「编辑」→「当前项目的触发器」→ 添加触发器,选择函数onSlackEdit,事件类型选「从电子表格提交」→「编辑时」。

function onSlackEdit(e) {
  // 配置参数
  const TARGET_SHEET_NAME = 'mySheet';
  const TARGET_COLUMN = 1;
  const SLACK_WEBHOOK_URL = 'https://hooks.slack.com/services/XXX/XXX/XXX'; // 替换为你的Slack Webhook URL

  const activeSheet = e.source.getActiveSheet();
  const activeRange = e.range;
  
  if (activeSheet.getName() !== TARGET_SHEET_NAME || activeRange.getColumn() !== TARGET_COLUMN) {
    return;
  }

  const oldValue = e.oldValue || '无';
  const newValue = e.value || '空值';
  const changeLocation = activeRange.getA1Notation();

  // 构造Slack消息内容
  const payload = {
    text: `⚠️ Google Sheets 内容变更通知\n> 工作表:${TARGET_SHEET_NAME}\n> 位置:${changeLocation}\n> 旧值:${oldValue}\n> 新值:${newValue}`
  };

  // 发送请求到Slack
  UrlFetchApp.fetch(SLACK_WEBHOOK_URL, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  });
}

使用说明

  1. 打开你的Google Sheets,点击「扩展程序」→「Apps脚本」,粘贴对应版本的代码
  2. 修改代码中的配置参数(工作表名称、目标列、邮箱/Slack Webhook URL)
  3. 如果是Slack版本,记得创建可安装触发器
  4. 测试:在目标列修改单元格内容,检查是否收到通知

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:06:47