Google Apps Script实现:当Google Sheets单元格A1>1时触发Google Chat通知
解决思路与步骤
1. 给函数添加A1值判断逻辑
修改你现有的代码,先获取A1单元格的计算值,只有当值大于1时才执行发送Google Chat消息的操作:
function webhook() { // 获取当前表格的A1单元格值 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const a1Value = sheet.getRange("A1").getValue(); // 仅当A1值大于1时触发消息推送 if (a1Value > 1) { const url = "HERE GOES THE URL FROM THE CHATS WEBHOOK"; const options = { "method": "post", "headers": { "Content-Type": "application/json; charset=UTF-8" }, "payload": JSON.stringify({ "text": "⚠️ Please verify. Thank you!" }) }; const response = UrlFetchApp.fetch(url, options); Logger.log(response); } }
2. 设置自动触发的安装型触发器
因为你需要A1值变化时自动执行函数,所以要给脚本添加表格变更触发规则:
- 打开Google Sheets,点击「扩展程序」→「Apps Script」进入脚本编辑器
- 点击左侧的时钟图标(触发器面板)
- 点击「添加触发器」,按以下配置设置:
- 选择运行函数:
webhook - 部署类型:
Head - 事件源:
从电子表格 - 事件类型:
更改时(这个类型会捕捉公式计算结果的变化,适合你的COUNTA场景;如果选「编辑时」,只会响应手动编辑单元格的操作)
- 选择运行函数:
- 保存并完成授权流程,之后脚本就会在A1值变化时自动执行判断和推送
可选:避免重复推送(进阶优化)
如果担心A1持续大于1时,每次表格变更都重复发消息,可以加一个状态标记,比如用B1单元格记录推送状态:
function webhook() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const a1Value = sheet.getRange("A1").getValue(); const statusCell = sheet.getRange("B1"); const currentStatus = statusCell.getValue(); // 仅当A1>1且未推送过消息时发送 if (a1Value > 1 && currentStatus !== "sent") { const url = "HERE GOES THE URL FROM THE CHATS WEBHOOK"; const options = { "method": "post", "headers": { "Content-Type": "application/json; charset=UTF-8" }, "payload": JSON.stringify({ "text": "⚠️ Please verify. Thank you!" }) }; const response = UrlFetchApp.fetch(url, options); Logger.log(response); // 标记为已推送 statusCell.setValue("sent"); } // 当A1回到1或以下时,重置推送状态 else if (a1Value <= 1 && currentStatus === "sent") { statusCell.setValue(""); } }
内容的提问来源于stack exchange,提问作者coffee709
相关产品推荐
相关产品推荐

