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

配置Google Sheets脚本:勾选H列复选框触发Telegram消息

谷歌表格H列复选框触发Telegram消息配置方案

需求概述

当表格「Авансы」工作表的H列(复选框列)被勾选时,自动发送包含当前行数据的Telegram消息,仅处理触发操作的当前行,避免遍历所有数据。

原脚本存在的问题

  1. 使用timer函数遍历所有行,未绑定复选框点击的触发事件;
  2. sendText函数嵌套在无效条件判断中,存在语法错误;
  3. 列索引取值超出getRange定义的范围,导致数据获取异常;
  4. 缺少触发逻辑,无法在复选框点击时自动执行;
  5. 未处理重复发送问题,可能导致同一行多次推送消息。

修改后的完整脚本

// 替换为你的Telegram Bot Token
const TELEGRAM_TOKEN = "你的BotToken";
// 替换为你的目标Chat ID
const CHAT_ID = "你的ChatID";

function onEdit(e) {
  const ss = e.source;
  const ws = ss.getSheetByName("Авансы");
  // 判断是否是「Авансы」工作表的H列(第8列)复选框触发
  if (!ws || e.range.getColumn() !== 8 || !e.value) return;

  const row = e.range.getRow();
  // 跳过表头行(第1行)
  if (row === 1) return;

  // 获取当前行的所有数据(根据实际列数调整,这里取到第12列)
  const rowData = ws.getRange(row, 1, 1, 12).getValues()[0];
  
  const partner = rowData[0];
  const inn = rowData[1];
  const order = rowData[3];
  const data_order = rowData[4];
  const sum_prepayment = rowData[5];
  const executor = rowData[11];
  const data_request_sent_cell = ws.getRange(row, 9); // I列:记录发送时间

  // 检查是否已发送过消息,避免重复触发
  if (data_request_sent_cell.getValue() !== "") return;

  // 组装消息内容
  const message = `Отправлен запрос, контрагенту  ${partner} (ИНН ${inn} ). По заказу: ${order} от ${data_order}, сумма аванса:${sum_prepayment} руб. Запрос отправил: ${executor} .`;
  
  // 发送Telegram消息
  sendText(CHAT_ID, message);
  
  // 记录发送时间,标记已处理
  data_request_sent_cell.setValue(new Date());
}

function sendText(chatId, text) {
  const url = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`;
  const payload = {
    chat_id: String(chatId),
    text: text,
    parse_mode: 'HTML'
  };
  
  const options = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(url, options);
}

配置步骤

  1. 填写关键参数:

    • 将TELEGRAM_TOKEN替换为你的Telegram机器人Token(通过@BotFather创建机器人获取);
    • 将CHAT_ID替换为接收消息的聊天ID(可通过@userinfobot获取)。
  2. 设置触发器:

    • 打开谷歌表格的「扩展程序」→「Apps脚本」;
    • 将修改后的脚本粘贴到编辑器,保存项目;
    • 点击编辑器左侧的「触发器」图标,添加新触发器:
      • 选择函数:onEdit;
      • 选择事件源:「从电子表格」;
      • 选择事件类型:「编辑时」;
      • 保存并授权必要权限。
  3. 测试功能:

    • 在「Авансы」工作表的H列勾选任意行的复选框;
    • 检查Telegram聊天是否收到对应消息,同时I列会自动记录发送时间。

注意事项

  • 确保表格「Авансы」的列索引与脚本一致:A列=索引0,H列=第8列,I列用于记录发送时间;
  • 脚本通过I列内容判断是否已发送消息,避免重复触发;
  • 若需处理「预付款到账」的复选框,可复制逻辑修改列索引和消息内容;
  • 首次运行需授权谷歌脚本访问UrlFetchApp和表格数据的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:15:34