【问题标题】:google sheet script to email mutiple blob one create by google sheet and another created by files in google Drive foldergoogle sheet 脚本通过电子邮件发送多个 blob 一个由 google sheet 创建,另一个由 google Drive 文件夹中的文件创建
【发布时间】:2020-05-09 05:26:50
【问题描述】:

您好,我正在使用此脚本从 Google 工作表创建并通过电子邮件发送工作表,效果很好,但我还希望脚本从 google 驱动器附加特定文件夹中的所有文件,然后通过电子邮件发送我的 google 工作表并将文件夹中的文件放在一封电子邮件中。

'''

function Test() {


  var source = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheet = spreadsheetId ? SpreadsheetApp.openById(spreadsheetId) 
  :SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
  var body = 'test'
  var email = Session.getActiveUser().getEmail();
  var token = ScriptApp.getOAuthToken();
  var ssID = spreadsheetId;
  var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export"+
                          "?format=pdf&"+
                          '&portrait=true' + //orientation, false for landscape
                          '&scale=4' +
                          '&top_margin=0.25' +              //All four margins must be set!
                          '&bottom_margin=0.25' +           //All four margins must be set!
                          '&left_margin=0.05' +             //All four margins must be set!
                          '&right_margin=0.05' +            //All four margins must be set!
                          '&horizontal_alignment=CENTER';   //LEFT/CENTER/RIGHT



  var response = UrlFetchApp.fetch(url, {
        headers: {
            'Authorization': 'Bearer ' + token
        }
    });


   var att = response.getBlob().setName( 'Test.PDF')
   var files = DriveApp.getFolderById('1GW6_ofWqztakjKJ9WWtxo7dhnPX0js').getFiles();
   var attachements = [];
   while (files.hasNext()) {
   var file = files.next();
   attachements.push(file.getAs(MimeType.PDF));

 }

  GmailApp.sendEmail(email, " Subject " , body, {
  attachments: attachements


   });



}

''' 当我使用“附件:附件”时,我从文件夹中获取所有文件作为附件和 当我使用“附件:att”时,我将我的谷歌表格作为附件,但我似乎无法弄清楚 如何在同一封电子邮件中获取我的谷歌表格以及文件夹中的所有文件

感谢您的帮助

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:
    • 您希望通过包含所有 blob 来发送包含附件文件的电子邮件。

    如果我的理解是正确的,那么下面的修改呢?

    发件人:

    var attachements = [];
    

    收件人:

    var attachements = [att];
    
    • 在这种情况下,首先将att 放入attachements 的数组中。并将文件夹中的所有文件添加到attachements

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 嗨,Tanaike,如果你不让我再问一个问题,有没有办法将文件夹和附件中的所有文件保存到同一文件夹中的一个 pdf 文件中
    • 我试过这样但它不起作用 var pdf = attachements; folder.createFile(pdf) 我收到此错误找不到方法 createFile(DriveApp.FileIterator)
    • @Yvan L 感谢您的回复。我很高兴你的问题得到了解决。关于你的新问题,我想支持你。但我必须为我糟糕的英语水平道歉。关于你的新问题,不幸的是,我不确定我是否能正确理解它。您想将多个 PDF 文件合并为一个 PDF 文件。如果我的理解是正确的,这个线程对你的情况有用吗? stackoverflow.com/q/15414077/7108653 如果我误解了您的新问题并且这对您的情况没有用处,我深表歉意。
    • 感谢 Tanaike 的链接,它看起来比我最初想象的要复杂
    • @Yvan L 如果您想将多个PDF文件合并为一个PDF文件,很遗憾,在现阶段,Google Apps Script的方法中并没有内置的方法可以直接实现。所以需要使用变通方法。至此,我认为已经发布了几个答案。当您找到解决问题的答案时,我很高兴。
    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2019-05-02
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多