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

AppScript如何提取Google Sheet最新提交行数据发送Slack通知?

Google Sheet 表单提交自动推送Slack代码修正方案

现有代码核心问题

  • 大小写错误:getvalue应为getValue、application/Json应为application/json,Google Apps Script对大小写敏感,错误写法会直接导致功能失效
  • 逻辑缺陷:仅遍历前20行且未做非空判断,无法定位最新的表单提交行
  • 未适配预填充公式场景:无法区分公式返回的空值和用户真实提交的有效数据

修正后完整代码

function buildReport() {
  const ss = SpreadsheetApp.getActive();
  const sheet = ss.getSheetByName('Sheet1');
  // 获取表格当前最大行数,减少无效遍历
  const maxRow = sheet.getLastRow();
  let latestOrder = '';
  let targetRow = 0;

  // 从最后一行往上查找第一个AG列(第33列)非空的行,即为最新提交行
  for (let i = maxRow; i >= 9; i--) {
    const cellValue = sheet.getRange(i, 33).getValue();
    // 跳过公式返回的空值,仅匹配用户真实提交的有效数据
    if (cellValue !== '') {
      latestOrder = cellValue;
      targetRow = i;
      break;
    }
  }

  // 如需提取同一行其他列数据,可取消注释下方代码并修改列号,例:AH列为第34列
  // const otherColumnValue = sheet.getRange(targetRow, 34).getValue();

  const payload = buildAlert(latestOrder);
  sendAlert(payload);
}

function buildAlert(newOrder) { 
  const payload = {
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": ":bell: *New Order Alert* :bell:"
        }
      },
      {
        "type": "divider"
      },
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": newOrder
        }
      }
    ]
  };
  return payload;
}

function sendAlert(payload) {
  const webHook = "https://hooks.slack.com/services/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";
  const options = { 
    "method": "post",
    "contentType" : "application/json",
    "muteHttpExceptions" : true,
    "payload" : JSON.stringify(payload)
  };
  try { 
    UrlFetchApp.fetch(webHook, options);
  } catch(e) { 
    Logger.log(e);
  }
}

部署配置说明

  • 触发器配置:打开对应Google Sheet,点击顶部菜单「扩展程序」-「Apps Script」进入脚本编辑器,点击左侧菜单栏「触发器」,添加新触发器:选择buildReport函数,事件来源选择「电子表格」,事件类型选择「表单提交时」,保存后即可实现用户提交表单后自动推送通知到Slack
  • 字段调整:如果需要推送多个字段内容,可在获取targetRow后提取同一行其他列的数据,自行拼接Slack消息的text字段即可
  • 范围调整:如果你的有效数据起始行不是第9行,修改遍历逻辑里的i >= 9的数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:54:07