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

如何用Google Apps Script提取Gmail数据填充Google Sheets匹配行对应单元格

你可以参考下方修改后的代码,核心逻辑是先读取A列所有已有的快递单号,遍历匹配到对应行后直接写入C列对应位置:

function extractDetails(message){
  var emailData = {
    body: "Null",
    date: "Null",
    trackingno: "Null",
  }

  emailData.date = message.getDate();
  emailData.body = message.getPlainBody();
  // 增加匹配失败容错,避免提取不到单号时报错
  const trackingMatch = emailData.body.match(/(?<=Tracking No. ).*/);
  if (!trackingMatch) return;
  emailData.trackingno = trackingMatch.toString().trim();

  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
  // 获取A列所有有内容的行数据
  const lastRow = activeSheet.getLastRow();
  const trackingNos = activeSheet.getRange(1, 1, lastRow, 1).getValues();

  // 遍历匹配单号
  for (let i = 0; i < trackingNos.length; i++) {
    // 两侧trim避免空格导致匹配失败
    if (trackingNos[i][0].toString().trim() === emailData.trackingno) {
      // 数组下标从0开始,表格行号从1开始,所以i+1为对应行号,C列是第3列
      activeSheet.getRange(i + 1, 3).setValue(emailData.date);
      break;
    }
  }
}

说明

  • 如果表格第一行是表头,将遍历起始值改为let i = 1即可跳过表头匹配
  • 若存在A列多个相同单号的场景,删除break语句即可给所有匹配到的行写入日期
  • 新增了提取单号失败的容错逻辑,避免无单号的异常邮件导致脚本报错

内容的提问来源于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 21:48:04