【问题标题】:Google Apps Script to extract data from Gmail and fill in matching row in Google Sheets用于从 Gmail 中提取数据并在 Google 表格中填写匹配行的 Google Apps 脚本
【发布时间】:2021-11-17 09:29:18
【问题描述】:

我有一个看起来像这样的 Google 表格...

我的目标是在我的 Gmail 帐户中获取某些电子邮件并提取电子邮件中的数据并使用 A 列中的匹配值填充 C 列。

这是示例电子邮件正文...

New status update for your shipment!
Tracking No. JK5SD8F4M6
Items Product A
Status At Warehouse 2

按照https://youtu.be/gdgCVqtcIw4 的教程,我设法使用此函数提取数据并附加到工作表中的新行。

function extractDetails(message){

  var emailData = {
    body: "Null",
    date: "Null",
    trackingno: "Null",
  }

  emailData.date = message.getDate();
  emailData.body = message.getPlainBody();
  emailData.trackingno = emailData.body.match(/(?<=Tracking No. ).*/).toString().trim();

  var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
  activeSheet.getSheetByName('Sheet1').appendRow([emailData.trackingno, emailData.date]);

}

但是,这个函数只是将数据添加到一个新行中。

如何使它在A列找到匹配的跟踪号并在C列的相应单元格中填写日期?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    我相信你的目标如下。

    • 您有一个包含“跟踪编号”值的电子表格。在“A”列。
    • 您要检索“跟踪编号”的值。和电子邮件中的日期,并将日期放在现有“跟踪号”同一行的“C”列中。

    这样的话,下面的修改怎么样?

    发件人:

    var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
    activeSheet.getSheetByName('Sheet1').appendRow([emailData.trackingno, emailData.date]);
    

    收件人:

    var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = activeSheet.getSheetByName('Sheet1');
    var range = sheet.getRange("A2:A" + sheet.getLastRow()).createTextFinder(emailData.trackingno).findNext();
    if (range) {
      range.offset(0, 2).setValue(emailData.date);
    } else {
      sheet.appendRow([emailData.trackingno, emailData.date]);
    }
    
    • 在此修改中,使用 TextFinder 从“A”列中搜索 emailData.trackingno,当找到现有的 emailData.trackingno 时,将 emailData.date 放入“C”列。当找不到现有的emailData.trackingno 时,[emailData.trackingno, emailData.date] 将附加到工作表中。

    • 如果您在找不到现有的emailData.trackingno 时不想做任何事情,请删除sheet.appendRow([emailData.trackingno, emailData.date]);

    参考资料:

    【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2015-12-29
    • 2021-10-19
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多