KMJO
KMJO

Reputation: 95

GAS Help - e-mailing cells from a range

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

Answers (2)

Mogsdad
Mogsdad

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

Serge insas
Serge insas

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

Related Questions