Javascript 使用谷歌脚本编辑器发送电子邮件

Javascript 使用谷歌脚本编辑器发送电子邮件,javascript,google-apps-script,html-email,email,google-sheets-macros,Javascript,Google Apps Script,Html Email,Email,Google Sheets Macros,我知道代码中有两个独立的电子邮件功能,但我正在尝试使用的是“sendsheettopdfwithA2mailaddress”。每次我尝试删除另一个,我都会收到一条错误消息,因此,如果您能帮我删除它,并且一切正常,我将不胜感激。我遇到的主要问题是,我只想通过电子邮件发送一张表,这是主要的一张或0张。当它发送电子邮件时,它会发送12张不同的工作表,而工作表0被压缩到工作表的四分之一左右 /** @OnlyCurrentDoc */ function onEdit(e) { var ss = Sp

我知道代码中有两个独立的电子邮件功能,但我正在尝试使用的是“sendsheettopdfwithA2mailaddress”。每次我尝试删除另一个,我都会收到一条错误消息,因此,如果您能帮我删除它,并且一切正常,我将不胜感激。我遇到的主要问题是,我只想通过电子邮件发送一张表,这是主要的一张或0张。当它发送电子邮件时,它会发送12张不同的工作表,而工作表0被压缩到工作表的四分之一左右

/** @OnlyCurrentDoc */
function onEdit(e) {
  var ss = SpreadsheetApp.getActive()          //gets the active spreadsheet
  var sheet = SpreadsheetApp.getActiveSheet()  //gets the active sheet
  var cell = ss.getActiveRange()               //gets the active cell
  var cellContent = cell.getValue()            //gets the value of the active cell

  if(cellContent === 'BOXCHECKED') {
    var spreadsheet = SpreadsheetApp.getActive();
    spreadsheet.getRange('B1:H4').activate();
    var currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
    currentCell.activateAsCurrentCell();
    spreadsheet.getRange('A1:H55').activate();
    spreadsheet.getRange('A1').activate();
    spreadsheet.getCurrentCell().setFormula('=H5');
    spreadsheet.getRange('H56').activate();
    spreadsheet.insertSheet(1);
    spreadsheet.getRange('\'Quote Sheet\'!A1:H55').copyTo(spreadsheet.getActiveRange(), 
                                                          SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
    spreadsheet.getRange('\'Quote Sheet\'!A1:H55').copyTo(spreadsheet.getActiveRange(), 
                                                          SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    spreadsheet.getActiveSheet().setHiddenGridlines(true);
    spreadsheet.getActiveSheet().hideSheet();
    spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Data Sheets'), true);
    spreadsheet.getRange('2:35').activate();
    spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 34);
    spreadsheet.getActiveRange().offset(0, 0, 34, 
                                        spreadsheet.getActiveRange().getNumColumns()).activate();
    spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Quote Sheet'), true);
    spreadsheet.getRange('B11').activate();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();
    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.UP).activate();
    currentCell.activateAsCurrentCell();
    spreadsheet.getRange('A12:z44').activate();
    spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Data Sheets'), true);
    spreadsheet.getRange('\'Quote Sheet\'!A12:z44').copyTo(spreadsheet.getActiveRange(), 
                                                           SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Quote Sheet'), true);
    spreadsheet.getRangeList(['C5:C10', 'H6:H10', 'B12:B44','D12:E44', 'H49:H50','B51:E55']).activate();
    spreadsheet.setCurrentCell(spreadsheet.getRange('H49'));
    spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
    spreadsheet.getRange('C5').activate();
    SpreadsheetApp.getActive();
    spreadsheet.getRange('G53').activate();
    spreadsheet.getCurrentCell().setValue('False')
    SpreadsheetApp.getActive();
    spreadsheet.getRange('A1').activate();
    spreadsheet.getCurrentCell().setValue('Quote Sheet')
    SpreadsheetApp.getActive().getSheets().forEach(function (sh) 
                                                   {
                                                     sh.setName(sh.getRange('a1').getValue())
                                                   })
  } 
};

function renameSheets() {
  SpreadsheetApp.getActive().getSheets().forEach(function (sh) {
    sh.setName(sh.getRange('A1').getValue())
  })
};

/* Email Google Spreadsheet as PDF */
function emailGoogleSpreadsheetAsPDF() {

  // Send the PDF of the spreadsheet to this email address
  var email = "t.mitchellbivens@gmail.com"; 

  // Get the currently active spreadsheet URL (link)
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Subject of email message
  var subject = "PDF generated from spreadsheet " + ss.getName(); 

  // Email Body can  be HTML too 
  var body = "Install the <a href='http://www.labnol.org/email-sheet'>Email Spreadsheet add-on</a> for 
  one-click conversion.";

  var blob = DriveApp.getFileById(ss.getId()).getAs("application/pdf");

  blob.setName(ss.getName() + ".pdf");

  // If allowed to send emails, send the email with the PDF attachment
  if (MailApp.getRemainingDailyQuota() > 0) 
    GmailApp.sendEmail(email, subject, body, {
      htmlBody: body,
      attachments:[blob]     
    }); 
};

function sendSheetToPdfwithA2MailAdress() { // this is the function to call
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[0]; // it will send sheet 0 wich is the first sheet in the spreadsheet.
  // if you change the number, change it also in the parameters below
  var shName = sh.getName()
  sendSpreadsheetToPdf(0, shName, sh.getRange('A2').getValue()," Test Run ", "Let's Hope This Works");
}

function sendSpreadsheetToPdf(sheetNumber, pdfName, email,subject, htmlbody) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId()  
  var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;  
  var url_base = spreadsheet.getUrl().replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf

  + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId)) 
  // following parameters are optional...
  + '&size=A4'      // paper size
  + '&portrait=true'    // orientation, false for landscape
  + '&fitw=true'        // fit to width, false for actual size
  + '&fith=true'        // fit to height, false for actual size
  + '&sheetnames=true&printtitle=false&pagenumbers=true'  //hide optional headers and footers
  + '&gridlines=false'  // hide gridlines
  + '&fzr=false';       // do not repeat row headers (frozen rows) on each page

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

  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, 
      subject+" (" + pdfName +")", 
      "html content only", 
      mailOptions);
  }
};
/**@仅限当前文档*/
功能OneEdit(e){
var ss=SpreadsheetApp.getActive()//获取活动的电子表格
var sheet=SpreadsheetApp.getActiveSheet()//获取活动工作表
var cell=ss.getActiveRange()//获取活动单元格
var cellContent=cell.getValue()//获取活动单元格的值
如果(cellContent=='BOXCHECKED'){
var电子表格=SpreadsheetApp.getActive();
电子表格.getRange('B1:H4').activate();
var currentCell=spreadsheet.getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
电子表格.getRange('A1:H55').activate();
spreadsheet.getRange('A1').activate();
电子表格.getCurrentCell().setFormula('=H5');
电子表格.getRange('H56').activate();
电子表格.插入表(1);
spreadsheet.getRange(“\'Quote Sheet\'!A1:H55”).copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_正常,错误);
spreadsheet.getRange(“\'Quote Sheet\'!A1:H55”).copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_值,false);
电子表格.getActiveSheet().setHiddenGridlines(true);
电子表格.getActiveSheet().hideSheet();
电子表格.setActiveSheet(电子表格.getSheetByName(“数据表”),true);
电子表格.getRange('2:35').activate();
电子表格.getActiveSheet().insertRowsBefore(电子表格.getActiveRange().getRow(),34);
spreadsheet.getActiveRange()偏移量(0,0,34,
电子表格.getActiveRange().getNumColumns()).activate();
电子表格.setActiveSheet(电子表格.getSheetByName('Quote Sheet'),true);
电子表格.getRange('B11').activate();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
currentCell=电子表格。getCurrentCell();
电子表格.getSelection().getNextDataRange(SpreadsheetApp.Direction.UP).activate();
currentCell.activateAsCurrentCell();
电子表格.getRange('A12:z44').activate();
电子表格.setActiveSheet(电子表格.getSheetByName(“数据表”),true);
电子表格.getRange(“\'Quote Sheet\'!A12:z44').copyTo(电子表格.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_值,false);
电子表格.setActiveSheet(电子表格.getSheetByName('Quote Sheet'),true);
电子表格.getRangeList(['C5:C10','H6:H10','B12:B44','D12:E44','H49:H50','B51:E55'])。激活();
电子表格.setCurrentCell(电子表格.getRange('H49'));
spreadsheet.getActiveRangeList().clear({contentsOnly:true,skipFilteredRows:true});
spreadsheet.getRange('C5').activate();
SpreadsheetApp.getActive();
电子表格.getRange('G53').activate();
电子表格.getCurrentCell().setValue('False')
SpreadsheetApp.getActive();
spreadsheet.getRange('A1').activate();
电子表格.getCurrentCell().setValue('报价表')
SpreadsheetApp.getActive().getSheets().forEach(函数(sh)
{
sh.setName(sh.getRange('a1').getValue())
})
} 
};
函数重命名表(){
SpreadsheetApp.getActive().getSheets().forEach(函数(sh){
sh.setName(sh.getRange('A1').getValue())
})
};
/*以PDF格式向谷歌电子表格发送电子邮件*/
函数emailGoogleSpreadsheetAsPDF(){
//将电子表格的PDF发送到此电子邮件地址
var email=“t。mitchellbivens@gmail.com"; 
//获取当前活动的电子表格URL(链接)
var ss=SpreadsheetApp.getActiveSpreadsheet();
//电子邮件的主题
var subject=“从电子表格生成的PDF”+ss.getName();
//电子邮件正文也可以是HTML
var body=“为安装
一键转换。“;
var blob=DriveApp.getFileById(ss.getId()).getAs(“application/pdf”);
setName(ss.getName()+“.pdf”);
//如果允许发送电子邮件,请发送带有PDF附件的电子邮件
如果(MailApp.getRemainingDailyQuota()>0)
GmailApp.sendmail(电子邮件、主题、正文、{
htmlBody:body,
附件:[blob]
}); 
};
函数SendSheetTopDFWithA2MailAddress(){//这是要调用的函数
var ss=SpreadsheetApp.getActiveSp