2014-07-25 563 views
0

我发送的是基于电子表格范围的自动电子邮件,但是我遇到的问题是看起来不太方便用户 - 邮件发送出去的值只能用逗号分隔,我希望它们分开显示。GAS帮助 - 通过电子邮件发送电子邮件

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) 

任何人都可以帮忙吗?

回答

0

有代码样本的几十个例子,这里SO达到这种效果,就“邮件发送”与谷歌 - 应用程序 - 脚本标签的快速搜索...

其中之一,有助于创造HTML表格至极甚至更好看不是简单的\ n是here或也低于here (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 = "[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}); 
} 
+0

感谢哔叽,能稍微定制此得到我想要的东西。谢谢! – KMJO

1

只要改变:

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

到:

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

[0]会将显示的结果限制在范围中的第一行不是吗?而且我们不能确定读取代码片段的vResults值,但我想它是> 1,否则在原始版本中不会有逗号。 –

+0

这样做,我只得到塞尔说的第一行。 vResults值只是12个字符的字母数字值,例如, PP6xQB7H35f3 – KMJO