Pdf 邮件范围不是整个工作表-应用程序脚本

Pdf 邮件范围不是整个工作表-应用程序脚本,pdf,google-apps-script,google-sheets,gmail,Pdf,Google Apps Script,Google Sheets,Gmail,我有一张谷歌表格。我想把它以PDF格式发送出去。 下面的代码可以将整个表单(一个选项卡)以pdf格式发送电子邮件。 &范围不起任何作用。我想要它,但它没有。 问题:如何更改此代码,使其发送电子邮件给“选定单元格”? 附加问题:为什么我必须输入?exportFormat=pdf和&format=pdf var url_base = ss.getUrl().replace(/edit$/,''); var url_ext = 'export?exportFormat=pdf&

我有一张谷歌表格。我想把它以PDF格式发送出去。 下面的代码可以将整个表单(一个选项卡)以pdf格式发送电子邮件。 &范围不起任何作用。我想要它,但它没有。 问题:如何更改此代码,使其发送电子邮件给“选定单元格”? 附加问题:为什么我必须输入?exportFormat=pdf和&format=pdf

      var url_base = ss.getUrl().replace(/edit$/,'');
      var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
      + (sheetId ? ('&gid=' + sheetId) : ('&id=' + ssId))
      + '&range=E1:L25' // <<< THIS DOESN'T SEEM TO DO ANYTHING
      + '&format=pdf'                   //export format
var url\u base=ss.getUrl().replace(/edit$/,“”);
var url_ext='export?exportFormat=pdf&format=pdf'//导出为pdf
+(sheetId?('&gid='+sheetId):('&id='+ssId))

+“&range=E1:L25”/实际上它确实有效。找到用作基础的源代码的原始定义后,我发现我将参数设置为通过电子邮件发送整个Sheets文件,而不是一个选项卡。指向一个选项卡后,&range参数被激活,我得到了所需的结果

电子邮件工作簿或选项卡参考:

还有我自己的扩展,包括射程能力和其他一些改进

/*
shNum = 0 for whole workbook or '0', or 0,1,2,etc for specific tab/sheet
shRng = A1 address for desired range, eg 'E1:L25', ignored if not a single sheet shNum
pdfName = text on top of pdf
*/
function mailPdf(shNum,shRng,pdfName,email,subject,htmlbody) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ssId = ss.getId();
  var shId = shNum ? ss.getSheets()[shNum].getSheetId() : null;  
  var url_base = ss.getUrl().replace(/edit$/,'');
  var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
      + (shId ? ('&gid=' + shId) : ('&id=' + ssId))
      + (shRng ? ('&range=E1:L25') : null)
      + '&format=pdf'                   //export format
      + '&size=letter'                      //A3/A4/A5/B4/B5/letter/tabloid/legal/statement/executive/folio
      //+ '&portrait=false'               //true= Potrait / false= Landscape
      //+ '&scale=1'                      //1= Normal 100% / 2= Fit to width / 3= Fit to height / 4= Fit to Page
      //+ '&top_margin=0.00'              //All four margins must be set!
      //+ '&bottom_margin=0.00'           //All four margins must be set!
      //+ '&left_margin=0.00'             //All four margins must be set!
      //+ '&right_margin=0.00'            //All four margins must be set!
      + '&gridlines=false'              //true/false
      //+ '&printnotes=false'             //true/false
      //+ '&pageorder=2'                  //1= Down, then over / 2= Over, then down
      //+ '&horizontal_alignment=CENTER'  //LEFT/CENTER/RIGHT
      + '&vertical_alignment=TOP'       //TOP/MIDDLE/BOTTOM
      //+ '&printtitle=false'             //true/false
      //+ '&sheetnames=false'             //true/false
      //+ '&fzr=false'                    //true/false frozen rows
      //+ '&fzc=false'                    //true/false frozen cols
      //+ '&attachment=false'             //true/false

  var options = {
    headers: {
      'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken(),
      'muteHttpExceptions': true
    }
  }

  var response = UrlFetchApp.fetch(url_base + url_ext, options);
  var blob = response.getBlob().setName(pdfName + '.pdf');
  if (email) {
    var mailOptions = {
      attachments:blob, htmlBody:htmlbody
    }


MailApp.sendEmail(
      // email + "," + Session.getActiveUser().getEmail() // use this to email self and others
      email,                                              // use this to only email users requested
      subject+' (' + pdfName +')', 
      'html content only', 
      mailOptions);

  }
}

你好您将如何动态设置范围?