I have a script that sends an email and my code is not letting setname (in gs:14) for the pdf email attachment. Would someone be able to help me out here? The error code states: "TypeError: Cannot read property 'setName' of undefined."
Thank you.
var ss = SpreadsheetApp.getActiveSpreadsheet();
function sendReport1() {
var sheetTabNameToGet = "Weekly Email";
var range = "A1:O91";
var name = ss.getSheetByName(sheetTabNameToGet).getRange("B2").getValue();
var d = Utilities.formatDate(new Date(), "GMT+1", "MM/dd/yyyy");
var pdfBlob = exportRangeToPDf(range,sheetTabNameToGet);
var message = {
to: ss.getSheetByName(sheetTabNameToGet).getRange('P1').getValue(),
subject: "Your Weekly Metrics Report | " +d,
body: "Hello "+name+",\n\nPlease find attached your individual metrics report for last week.\n\nIf you have any questions, feel free to reply all to this email or come find any of your leaders to discuss any questions you may have!\n\nThank you,\n\nDetroit Leadership Team",
name: "Detroit Leadership Team",
attachments: [pdfBlob.setName("Weekly Email")]
}
MailApp.sendEmail(message);
}
function exportRangeToPDf(range, sheetTabNameToGet) {
var blob,exportUrl,options,pdfFile,response,sheetTabId,ssID,url_base;
ssID = ss.getId();
sh = ss.getSheetByName(sheetTabNameToGet);
sheetTabId = sh.getSheetId();
url_base = ss.getUrl().replace(/edit$/,'');
exportUrl = url_base + 'export?exportFormat=pdf&format=pdf' +
'&gid=' + sheetTabId + '&id=' + ssID +
'&range=' + range +
'&size=letter' + // paper size
'&portrait=true' + // orientation, false for landscape
'&fitw=true' + // fit to width, false for actual size
'&top_margin=0.75' +
'&bottom_margin=0.75' +
'&left_margin=0.25' +
'&right_margin=0.25' +
'&scale=0.43' +
'&sheetnames=false&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
options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
options.muteHttpExceptions = true;//Make sure this is always set
response = UrlFetchApp.fetch(exportUrl, options);
if (response.getResponseCode() !== 200) {
console.log("Error exporting Sheet to PDF! Response Code: " + response.getResponseCode());
return;
}
blob = response.getBlob();
return blob;
}