Reputation: 95
I'm sending out an automated e-mail based on a range in a spreadsheet, however the issue I have is it doesn't look very user friendly - when the e-mail is sent out the values are only separated by a comma, I would like them to appear on separate lines.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var vJOresponses = ss.getSheetByName("Responses");
var vCodesDay = ss.getSheetByName("Codes")
var vLength = vJOresponses.getRange("C2").getValue();
var vResults = vJOresponses.getRange("D2").getValue();
var vemailAddresses = vJOresponses.getRange("B2").getValue();
var vsubject = "Here are your Wi-Fi codes!";
var dataRangeDay = vCodesDay.getSheetValues(1, 1, vResults, 1);
MailApp.sendEmail(vemailAddresses, vsubject, dataRangeDay)
Can anyone help?
Upvotes: 0
Views: 85
Reputation: 45750
Just change:
var dataRangeDay = vCodesDay.getSheetValues(1, 1, vResults, 1);
to:
var dataRangeDay = vCodesDay.getSheetValues(1, 1, vResults, 1)[0].join('\n');
Upvotes: 1
Reputation: 46822
There are dozens examples of code samples to achieve that result here on SO, make a quick search on "mail send" with the Google-Apps-Script tag...
One of them that helps to create a html table wich is even better looking than simple \n is here or also here (to take only some I answered ;-)
code below :
// Sends an email when .......
function emailInfoRequired(row) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var subject = "Info Needed: " + sheet.getRange("F19").getValues();
var recipients = "[email protected]"
var data = sheet.getRange('A2:C25').getValues();// define your range here
var message = '<HTML><BODY><table style="background-color:lightblue;border-collapse:collapse;" border = 1 cellpadding = 5><tr>';// change eventually the color here
for (var row=0;row<data.length;++row){
for(var col = 0;col<data[0].length;++col){
message += '<td>'+data[row][col]+'</td>';
}
message += '</tr><tr>';
}
message += '</tr></table></body></HTML>';
MailApp.sendEmail(recipients, subject, "", {htmlBody: message});
}
Upvotes: 0