【发布时间】:2014-01-24 21:08:36
【问题描述】:
我有一个带有数据透视表的谷歌电子表格,我想使用我的 gmail 根据某些标准自动发送电子邮件。我对电子邮件脚本和条件非常满意,但是我找不到任何可以有效地将表格的“复制 - 粘贴”复制到电子邮件中的脚本。
如果您对此提供任何帮助,我将不胜感激。
谢谢
敏捷
我设法使用来自该社区的建议使其工作。谢谢!
我试图让它水平显示值,即每行一个新的客户记录。但是,我得到了一些不同的东西。我正在附加一个文件,其中包含我得到的内容和代码。我会很感激任何建议。我很确定解决方案就在那里,但经过几个小时后我无法得到它:(我正在显示下面的代码,并附上一张带有当前和期望结果的照片。
非常感谢
敏捷
function testMail(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var responses = ss.getSheetByName("Monitoreo de Pedidos");
// var lastRow = responses.getLastRow();
// var values = responses.getRange("A2"+(lastRow)+":R2"+(lastRow)).getValues();
var values = responses.getRange("A3:R12").getValues();
var headers = responses.getRange("A2:R2").getValues(); //The headers. A1 TO R1 does not contain relevant data
var message = composeMessage (headers,values);
var messageHTML = composeHtmlMsg(headers,values);
Logger.log(messageHTML);
MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'test html', message,{'htmlBody':messageHTML});
}
function composeMessage(headers,values){
var message = 'Here are the data you submitted :\n'
for (var j=0;j<5;++j){ //NUMBER OF ROWS
for(var c=0;c<values[0].length;++c){ //NUMBER OF COLUMNS, in the future this will be dynamic
message+='\n'+headers[0][c]+' : '+values[j][c]
}
}
return message;
}
function composeHtmlMsg(headers,values){
var message = 'Here are the data you submitted :<br><br><table style="background- color:yellow;border-collapse:collapse;" border = 1 cellpadding = 5><th>Title</th> <th>Customer Info</th><tr>'
for (var j=0;j<5;++j){
for(var c=0;c<values[0].length;++c){
message+='<tr><td>'+headers[0][c]+'</td><td>'+values[j][c]+'</td></tr>'
}
}
return message+'</table>';
![Desired outcome][1]}
【问题讨论】:
-
您当前的代码是什么样的,您遇到了什么具体问题?
-
您是否尝试过将您的 ss 作为 html 并将其用作 html 正文?
-
太棒了。我按照你在这篇文章stackoverflow.com/questions/17658409/… 上的建议尝试了 html。我想知道是否可以以相反的方式显示表格,顶部的标题和下面的值。我试图创建一个代码来动态更改表格的大小,但我无法获得我想要的格式。请原谅我,我是新手。
-
代码现已附加。谢谢!