首页 > 解决方案 > 将 csv 从 gmail 附件导入到 Google 工作表

问题描述

我需要自动将单个发件人的附加 .csv 数据从 Gmail 导入到 GoogleSheet。到目前为止,我在教程中找到了这个:

   function RECUP_CSV_PIECE_JOINTE(mail) {
  var fil_email=GmailApp.search('from:'+mail +' filename:csv' ,0,1)[0]
  var dernier_email= fil_email.getMessages()[fil_email.getMessages().length-1]
  var piece_jointe=dernier_email.getAttachments()[0]
  var txt=piece_jointe.getDataAsString().replace(/"/g, '')
  var csvData = Utilities.parseCsv(txt,",")
  return csvData
}
  function IMPORT_DATA(csvData){
  var LEADS=SpreadsheetApp.getActive().getSheetByName("LEADS")
  if(csvData.length>0){
LEADS.getRange(LEADS.getLastRow()+1, 1, csvData.length, csvData[0].length).setValues(csvData)
    Logger.log("Import terminé")
 }
 else{
    Logger.log("Aucune données dans le csv")
 }
}

function MAIN(){ 
  var mail="contact@mysite.fr"
  //L’appel des deux fonctions
  IMPORT_DATA(RECUP_CSV_PIECE_JOINTE(mail))
}

它可以工作,但只导入最后一封邮件的附件,我需要导入所有收到的附件。

我的目标是每小时触发一次此脚本,并将所有附件编译在一张纸上。

(对不起,我编辑了两次,发现另一个部分有效但不如这个曾经用马里奥的好建议编辑过的 tut)

标签: csvgoogle-apps-scriptgoogle-sheetsgmail

解决方案


GmailApp.search('from:'+mail +' filename:csv' ,0,1)您告诉搜索最多获得 1 个线程。

GmailApp 文档中所述:搜索参数为query, start, max:

查询:搜索查询,就像您在 Gmail 中输入的一样

start:开始线程的索引

Max:返回的最大线程数

您将最大值设置为 1。


推荐阅读