send email in selected range rows & coloumns
Thu Jul 03 2025 07:23:21 GMT+0000 (Coordinated Universal Time)
Saved by @ash1i
function sendEmailWithData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AUTOMAIL");
// Email groups
var email1 = "Pravin.kumar@meenakshipolymers.com"; // A to G
var email2 = "rajender.yadav@meenakshipolymers.com"; // I to O
var email3 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // Q to W
var email4 = "rajender.yadav@meenakshipolymers.com,vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // Y to AE
var email5 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // AG to AM
var email6 = "rajender.yadav@meenakshipolymers.com"; // AO to AU
var email7 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com";//AW to BC
var email8 = "narendra.singh@meenakshipolymers.com"; // BE to BK
// CCs
var cc1 = cc2 = cc3 = cc4 = cc5 = cc6 = cc7 =
"anu.singh@meenakshipolymers.com,sandeep.sareen@meenakshipolymers.com,ppc@meenakshipolymers.com,chanchal.rani@meenakshipolymers.com";
var cc8 = "dharmesh.kumar@meenakshipolymers.com,chanchal.rani@meenakshipolymers.com,avanish.kumar@meenakshipolymers.com,mamta.vashishtha@meenakshipolymers.com,rajender.yadav@meenakshipolymers.com,vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com,ppc@meenakshipolymers.com,anu.singh@meenakshipolymers.com,sandeep.sareen@meenakshipolymers.com";
// Column ranges
var range1 = sheet.getRange("A1:G" + sheet.getLastRow()).getValues();
var range2 = sheet.getRange("I1:O" + sheet.getLastRow()).getValues();
var range3 = sheet.getRange("Q1:W" + sheet.getLastRow()).getValues();
var range4 = sheet.getRange("Y1:AE" + sheet.getLastRow()).getValues();
var range5 = sheet.getRange("AG1:AM" + sheet.getLastRow()).getValues();
var range6 = sheet.getRange("AO1:AU" + sheet.getLastRow()).getValues();
var range7 = sheet.getRange("AW1:BC" + sheet.getLastRow()).getValues();
var range8 = sheet.getRange("BE1:BK" + sheet.getLastRow()).getValues();
// Send emails only if non-empty data exists
if (hasData(range1.slice(1))) sendTableEmail(email1, cc1, "SALES ORDER DATE N/A ==ORDER FMS MANESAR ", range1);
if (hasData(range2.slice(1))) sendTableEmail(email2, cc2, "PRDN. ACTUAL DATE N/A ==ORDER FMS MANESAR", range2);
if (hasData(range3.slice(1))) sendTableEmail(email3, cc3, "PRDN. ACTUAL DATE N/A ==ORDER FMS MANESAR", range3);
if (hasData(range4.slice(1))) sendTableEmail(email4, cc4, "HANDOVER. DATE N/A ==ORDER FMS MANESAR", range4);
if (hasData(range5.slice(1))) sendTableEmail(email5, cc5, "HANDOVER. DATE N/A ==ORDER FMS MANESAR", range5);
if (hasData(range6.slice(1))) sendTableEmail(email6, cc6, "PRDN. PLAN DATE N/A ==ORDER FMS MANESAR", range6);
if (hasData(range7.slice(1))) sendTableEmail(email7, cc7, "PRDN. PLAN DATE N/A ==ORDER FMS MANESAR", range7);
if (hasData(range8.slice(1))) sendTableEmail(email8, cc8, "DISP. Plan Failure ==ORDER FMS MANESAR", range8);
}
// Check for any non-empty cell
function hasData(range) {
return range.some(row => row.some(cell => String(cell).trim() !== ""));
}
// Format date to "6-Feb-2025"
function formatDate(date) {
if (Object.prototype.toString.call(date) === "[object Date]" && !isNaN(date)) {
var day = date.getDate();
var month = date.toLocaleString('default', { month: 'short' });
var year = date.getFullYear();
return day + '-' + month + '-' + year;
}
return date;
}
// Send filtered table data via email
function sendTableEmail(email, cc, subject, rangeData) {
var sheetLink = "https://docs.google.com/spreadsheets/d/1_VxfBsQAQ6zvFNkWdYW37-z-5oL2a4GRqGJB8h6GT5I/edit?gid=0#gid=0";
var htmlBody = "<p>Please add details in your respective ORDER FMS MANESAR sheet.</p>";
htmlBody += "<p><a href='" + sheetLink + "' target='_blank'><b>Click here to update</b></a></p>";
htmlBody += "<table border='1' style='border-collapse: collapse;'>";
// Filter out empty rows except for the header
var filteredData = rangeData.filter((row, index) => {
if (index === 0) return true; // keep header
return row.some(cell => String(cell).trim() !== "");
});
// Build table
for (var i = 0; i < filteredData.length; i++) {
htmlBody += "<tr>";
for (var j = 0; j < filteredData[i].length; j++) {
var cellValue = filteredData[i][j];
if (Object.prototype.toString.call(cellValue) === "[object Date]" && !isNaN(cellValue)) {
cellValue = formatDate(cellValue);
}
htmlBody += "<td><b>" + cellValue + "</b></td>";
}
htmlBody += "</tr>";
}
htmlBody += "</table>";
// Send the email
MailApp.sendEmail({
to: email,
cc: cc,
subject: subject,
htmlBody: htmlBody
});
}



Comments