GAS帮助 - 通过电子邮件发送范围内的单元格

时间:2014-07-25 11:14:52

标签: google-apps-script

我发送了一个基​​于电子表格中的范围的自动电子邮件,但是我遇到的问题是它看起来不是非常友好 - 当发送电子邮件时,值仅由一个逗号,我希望它们出现在不同的行上。

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)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

只需改变:

var dataRangeDay = vCodesDay.getSheetValues(1, 1, vResults, 1);

为:

var dataRangeDay = vCodesDay.getSheetValues(1, 1, vResults, 1)[0].join('\n');

答案 1 :(得分:0)

有几十个代码示例示例可以在SO上实现这一结果,使用Google-Apps-Script标记快速搜索“邮件发送”...

其中一个有助于创建一个html表,它看起来比简单\ n herehere (to take only some I answered ;-)

更好看

以下代码:

// Sends an email when .......
function emailInfoRequired(row) { 
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var subject = "Info Needed: " + sheet.getRange("F19").getValues();
  var recipients = "testmail@gmail.com"
  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});
}