Skip to content

Instantly share code, notes, and snippets.

@chemiadel
Last active September 12, 2021 01:34
Show Gist options
  • Save chemiadel/f2a023f2022ef6eafa86e7326bc92062 to your computer and use it in GitHub Desktop.
Save chemiadel/f2a023f2022ef6eafa86e7326bc92062 to your computer and use it in GitHub Desktop.
//https://gist.github.com/chemiadel/f2a023f2022ef6eafa86e7326bc92062
RANGE="B5:F10";
SHEET_NAME="Sheet1";
//Types available : pdf,csv or xlsx
EXPORT_TYPE="pdf";
function EmailRange() {
//Assign The Spreadsheet,Sheet,Range to variables
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(SHEET_NAME);
var range=sheet.getRange(RANGE);
//Range values to export
var values=range.getValues();
//Create temporary sheet
var sheetName=Utilities.formatDate(new Date(), "GMT", "MM-dd-YYYY hh:mm:ss");
var tempSheet=ss.insertSheet(sheetName);
//Copy range onto that sheet
tempSheet.getRange(1, 1, values.length, values[0].length).setValues(values);
//Save active sheets (Unhidden)
var unhidden=[];
for(var i in ss.getSheets()){
if(ss.getSheets()[i].getName()==sheetName) continue;
if(ss.getSheets()[i].isSheetHidden()) continue;
unhidden.push(ss.getSheets()[i].getName());
ss.getSheets()[i].hideSheet();
}
//Authentification
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var url="https://docs.google.com/spreadsheets/d/"+ss.getId()+"/export?format="+EXPORT_TYPE;
//Fetch URL of active spreadsheet
var fetch=UrlFetchApp.fetch(url,params);
//Get content as blob
var blob=fetch.getBlob();
var mimetype;
if(EXPORT_TYPE=="pdf"){
mimetype="application/pdf";
}else if(EXPORT_TYPE=="csv"){
mimetype="text/csv";
}else if(EXPORT_TYPE=="xlsx"){
mimetype="application/xlsx";
}else{
return;
}
//Send Email
GmailApp.sendEmail('pace3man@gmail.com',
'Title',
'The body here' ,
{
attachments: [{
fileName: "Attach title" + "."+EXPORT_TYPE,
content: blob.getBytes(),
mimeType: mimetype
}]
});
//Reshow the sheets
for(var i in unhidden){
ss.getSheetByName(unhidden[i]).showSheet();
}
//Delete the temporary sheet
ss.deleteSheet(tempSheet);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment