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

如何用Google Apps Script从Gmail提取多跟踪号数据匹配填充Google Sheets

问题背景

现有场景为单封Gmail邮件包含多个快递跟踪号,标准邮件内容示例如下:

Your order is ready to be redeemed/ delivered. 
Order No. 91401111 
Tracking No. (Actual Weight/Chargeable Weight) JK5SD8F4M6 (2.1lb) 
J6HDO9L665 (2.1lb) 
J3SDG76435 (9.8lb) 
Courier UPS
Shipment No. 23879924905

需求为提取邮件内的订单号、所有跟踪号及对应重量、快递公司、Shipment No,匹配Google Sheets中Sheet1的A列跟踪号,填充对应列数据,无匹配行则新增行。

原有脚本存在两个缺陷:

  • 缺少提取对应重量的正则表达式
  • 无法识别单封邮件内的多个跟踪号,仅能处理第一个跟踪号
修复后完整代码
function extractDetails(message){
  const emailBody = message.getPlainBody();
  // 提取邮件内公共字段(单封邮件内统一)
  const orderNo = emailBody.match(/(?<=Order No\. )\d+/)[0].trim();
  const courier = emailBody.match(/(?<=Courier )[A-Za-z]+/)[0].trim();
  const shipmentNo = emailBody.match(/(?<=Shipment No\. )\d+/)[0].trim();
  // 全局匹配所有跟踪号+重量组合
  const trackingReg = /([A-Z0-9]+)\s*\(([\d.]+lb)\)/g;
  const trackingList = [];
  let matchResult;
  // 遍历所有匹配结果存入数组
  while ((matchResult = trackingReg.exec(emailBody)) !== null) {
    trackingList.push({
      no: matchResult[1],
      weight: matchResult[2]
    })
  }

  const activeSheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = activeSheet.getSheetByName('Sheet1');
  // 循环处理每个跟踪号
  trackingList.forEach(item => {
    const range = sheet.getRange("A2:A" + sheet.getLastRow()).createTextFinder(item.no).matchEntireCell(true).findNext();
    if (range) {
      // 匹配到则更新对应列
      range.offset(0, 3).setValue(item.weight);
      range.offset(0, 4).setValue(orderNo);
      range.offset(0, 5).setValue(courier);
      range.offset(0, 6).setValue(shipmentNo);
    } else {
      // 未匹配到则新增行
      sheet.appendRow([item.no, '', '', item.weight, orderNo, courier, shipmentNo]);
    }
  })
}
关键修改说明
  • 重量提取:使用带分组的全局正则/([A-Z0-9]+)\s*\(([\d.]+lb)\)/g,一次匹配即可同时拿到跟踪号和对应重量,分组1为跟踪号,分组2为重量
  • 多跟踪号处理:通过while循环遍历全局正则的所有匹配结果,将所有跟踪号和对应重量存入数组后循环处理
  • 匹配优化:createTextFinder增加matchEntireCell(true)配置,避免部分字符匹配导致的错误填充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:48:01