Javascript 如何使用脚本加载上次更改的Google工作表数据并以PDF格式发送电子邮件

Javascript 如何使用脚本加载上次更改的Google工作表数据并以PDF格式发送电子邮件,javascript,google-apps-script,google-sheets,pivot-table,Javascript,Google Apps Script,Google Sheets,Pivot Table,我已经写了一个脚本函数,以获取谷歌工作表数据,并将电子邮件作为附件PDF发送。我在这里使用了google表单中的pivot表 问题就在这里。在筛选数据透视表之后,然后如果我发送电子邮件,则只发送没有筛选数据的邮件。这意味着默认值仅导出为pdf 如何发送包含当前筛选数据的电子邮件pdf function sendEmail(){ try { var ss = SpreadsheetApp.getActiveSpreadsheet(); var getTabsheetName=

我已经写了一个脚本函数,以获取谷歌工作表数据,并将电子邮件作为附件PDF发送。我在这里使用了google表单中的pivot表

问题就在这里。在筛选数据透视表之后,然后如果我发送电子邮件,则只发送没有筛选数据的邮件。这意味着默认值仅导出为pdf

如何发送包含当前筛选数据的电子邮件pdf

function sendEmail(){
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var getTabsheetName=ss.getSheetByName('report');

      var url = 'https://docs.google.com/a/mydomain.org/spreadsheets/d/'
      + ss.getId()  //Your File ID 
      + '/export?exportFormat=pdf&format=pdf'
      + '&size=LETTER'
      + '&portrait=true'
      + '&fitw=true'       
      + '&top_margin=0.50'              
      + '&bottom_margin=0.50'          
      + '&left_margin=0.50'             
      + '&right_margin=0.50'           
      + '&sheetnames=false&printtitle=false&pagenumbers=true'
      + '&pagenum=false'
      + '&gridlines=false'
      + '&fzr=FALSE'      
      + '&gid='
      + getTabsheetName.getSheetId();       //the sheet's Id
     

    
    var emailsheet=ss.getSheetByName('Email');
    var emailContentsheet=ss.getSheetByName('EmailContent');
    var subject = emailContentsheet.getRange(2,1).getValue();
    var n=emailsheet.getLastRow();
     
    var params = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions: true
    };
    var blob = UrlFetchApp.fetch(url, params).getBlob().setName('Report.pdf');
    for (var i = 2; i < n+1 ; i++ ) {
      // SpreadsheetApp.flush();
      var emailAddress = emailsheet.getRange(i,2).getValue();
      var name=emailsheet.getRange(i,1).getValue();
      var message = emailContentsheet.getRange(2,2).getValue();
      var returnData = [name,message];
      var templ = HtmlService.createTemplateFromFile('index');
      templ.data = returnData;
      var htmlboday = templ.evaluate().getContent();
      MailApp.sendEmail({
        to: emailAddress,
        subject: subject,
        htmlBody: htmlboday,
        attachments:[blob]
      });
  }
  } catch (f) {
    Logger.log(f.toString());
  }
}
函数sendmail(){ 试一试{ var ss=SpreadsheetApp.getActiveSpreadsheet(); var getAbsheetName=ss.getSheetByName('report'); var url='1〕https://docs.google.com/a/mydomain.org/spreadsheets/d/' +ss.getId()//您的文件ID +“/export?exportFormat=pdf&format=pdf” +“&size=字母” +“&trait=true” +“&fitw=true” +“&top_margin=0.50” +“&bottom_margin=0.50” +“&左_边距=0.50” +“&右边距=0.50” +“&sheetnames=false&printtitle=false&PageNumber=true” +“&pagenum=false” +“&gridlines=false” +“&fzr=FALSE” +“&gid=” +getAbsheetName.getSheetId();//工作表的Id var emailsheet=ss.getSheetByName('Email'); var emailContentsheet=ss.getSheetByName('EmailContent'); var subject=emailContentsheet.getRange(2,1).getValue(); var n=emailsheet.getLastRow(); 变量参数={ 方法:“获取”, 标题:{“授权”:“承载者”+ScriptApp.getOAuthToken()}, muteHttpExceptions:true }; var blob=UrlFetchApp.fetch(url,params.getBlob().setName('Report.pdf'); 对于(变量i=2;i我可以问一下过滤数据透视表的详细信息吗?逻辑是将过滤后的值复制到另一张表中,然后从该表中创建pdf。要查找过滤后的值,有几个像@Tanaike这样的线程我已经更新了透视表的屏幕截图只要在脚本中做透视表,我会把它放到一个临时工作表中,并制作一个PDFthat@Cooper您能给我一个脚本中透视表的示例吗?我能问您有关过滤透视表的详细信息吗逻辑是将过滤后的值复制到不同的表中,然后从该表中创建pdf。为了找到过滤后的值,有几个线程,比如@Tanaike,我已经更新了透视表的屏幕截图,只需在脚本中创建透视表,我会将其放入临时工作表并制作一份PDFthat@Cooper您能给我一个脚本中透视表的示例吗?