将gmail csv附件导入google工作表的简单脚本

时间:2017-10-11 15:29:46

标签: csv google-sheets upload gmail attachment

所以,经过一些关于这个主题的搜索帖子后,我想出了下面的代码组合。到目前为止它工作得很好,虽然我不知道eveything究竟意味着什么 - >相当一些试验和错误

简言之,我做了什么:

  1. 创建专用的Gmail地址
  2. 使用csv中的每日报告向gmail发送电子邮件
  3. 在gmail中创建自动标签/过滤器
  4. 每天早上创建Google工作表并运行脚本以覆盖前一天的数据。
  5. 使用Google工作表连接到您使用的任何工具。
  6. 唯一的挑战是在我的工具中,标题应该在第一行才能正确读取,尽管标准导出(总是,不能更改)标题和空在下面排。所以标题从第3行开始。

    如何删除导入中的这两个第一行?

    提前致谢!

    a
    <blank row>
    b
    c
    d
    


    更新
    所以我通过google工作表中的解决方法修复了问题。我使用arrowformula复制导入的工作表,但是从下面的2行开始。

    那说;上面的脚本第一次工作,但今天早上的新更新;它在此之前一直在导入报告。无法弄清楚原因。

    我的解决方案:转换gmail中的线程并简化代码。我摆脱了标签(为此获得了专用的Gmail,所以没有必要)。

    function getCSV() {
    
     var myLabel = GmailApp.getUserLabelByName("DWH"); // specify label in gmail
     var threads = myLabel.getThreads(0,1);
     var msgs = GmailApp.getMessagesForThreads(threads);
     var attachments = msgs[0][0].getAttachments();
    
     var csv =  attachments[0].getDataAsString();
     var data = Utilities.parseCsv(csv);
    
    var a = data.length ;
    var b = data[0].length; 
    
    var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = SpreadsheetApp.openById('fill in id of google sheet').getSheetByName('fill in sheet name');
      sheet.clearContents();
      var range = sheet.getRange(1,1, data.length,data[0].length);
    range.setValues(data);
    
    }
    

    希望这有帮助..某人

0 个答案:

没有答案