首页 > 解决方案 > Gscript 读取 gmail 附件

问题描述

我编写了一个代码,它从 Gmail 附件中读取 .csv 文件,并将其写入我的活动 Google 表格。

该脚本第一次运行正常,但后续执行只写入旧数据。当我重新发送具有不同值的 CSV 时,它仍然会写入旧值。

例如:gmail收到以下数据

Name | sal  
Abhi | 400  
Nil  | 600

这将在我的活动表上成功更新。

如果我手动删除此邮件并收到新附件:

Name | sal
Jho  | 600
Maik | 500

这一次,我的代码不会写入上述数据,即使旧邮件已被删除。它仍然会写 Abhi 400,nil 600。

下面是代码:

function importCSVFromGmail() {
  var threads = GmailApp.search("STUDENT");
  var message = threads[0].getMessages()[0];
  var attachment = message.getAttachments()[0];
  if (attachment.getContentType() === "text/csv") {
    var sheet = SpreadsheetApp.getActiveSheet();
    var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
    // Remember to clear the content of the sheet before importing new data
    sheet.clearContents().clearFormats();
    sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); 
  }
}

标签: google-apps-scriptgoogle-sheetsgmail

解决方案


推荐阅读