首页 > 解决方案 > 谷歌应用脚​​本 - 将最新文件导入谷歌表格

问题描述

我有以下代码读取附加在我的 Gmail 标签中的文件

function importCSVGMAIL() {
  //gets first(latest) message with set label
  var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads(0,1);     
  var message = threads[0].getMessages()[0];
  var attachment = message.getAttachments()[0];

  // Is the attachment a CSV file
    var ss = SpreadsheetApp.getActive();
    var sh = ss.getSheetByName("CALLER");
    //parses content of csv to array
  attachment.setContentTypeFromExtension();  
  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
    sh.clearContents().clearFormats();                                         
    //pastes array to sheet
    sh.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
  }
}

现在的问题是,当我们的内部服务器将数据发送到 Gmail 时(我对此有一个预定的报告),标签收件箱以最旧 - 最新的顺序显示这些文件。然后这段代码将解析收件箱中的第一个项目(这是最旧的......不是最新的!)

有没有办法通过更改下面的代码来调用“最新”文件?

标签: google-apps-script

解决方案


就像 Yaakov 说的......另外,如果您正在寻找最新的线程,您可能想要获取多个线程:

// Replace this
  var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads(0,1);

// With this
  var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads();

推荐阅读