【问题标题】:How to copy paste a google spreadsheet table into gmail using google script?如何使用谷歌脚本将谷歌电子表格表格复制粘贴到 gmail 中?
【发布时间】: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。我想知道是否可以以相反的方式显示表格,顶部的标题和下面的值。我试图创建一个代码来动态更改表格的大小,但我无法获得我想要的格式。请原谅我,我是新手。
  • 代码现已附加。谢谢!

标签: email google-apps-script


【解决方案1】:

您需要将电子邮件正文编写为 html 并将其插入其中。如果你想模仿格式,做更多的工作。尝试 if 并在遇到困难时回信。

【讨论】:

  • 完成之字形。不需要格式化。根据我之前的评论,我无法以相反的方式显示表格,顶部的标题和下面的值。我试图创建一个代码来动态更改表格的大小,但我无法获得我想要的layoyt :((
  • 是的,它只是普通的 html。搜索如何制作 html 表格(以 作为标题)
  • 谢谢 Zig。我试过但真的卡住了。我已经发布了代码和图片。谢谢!
猜你喜欢
相关资源
最近更新 更多
热门标签