将电子表格作为电子邮件发送(格式问题) [英] Send range from Google spreadsheet as Email (formatting issue)

查看:246
本文介绍了将电子表格作为电子邮件发送(格式问题)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码发送第2和第3列中的数据电子邮件,但电子邮件中的结果不是一个在另一个之下。

  Code.gs 
function email(){

var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName(Bulk);
var lastrow = bulk.getLastRow();

var data1 = bulk.getRange(1,2,lastrow).getValues();
var data2 = bulk.getRange(1,3,lastrow).getValues();

var onedata =,twodata =;

for(var i = 1; i< data1.length; i ++){
if(onedata.length){
onedata + =,;
}
onedata + = data1 [i]
}

for(var i = 1; i if(twodata.length){
twodata + =,;
}
twodata + = data2 [i]
}

var report =

report + =< tr> < td style ='padding:5px'> + onedata +< / td>< td style ='padding:5px'> + twodata +< / td>< / tr>;


report =< table>< tr>< th>第一个数据< th>第二个数据< / th>< / tr> + report +< / table>;

MailApp.sendEmail(Session.getActiveUser()。getEmail(),
Your report,report,{htmlBody:report});

}

电子邮件收到的结果

 第一笔数据第二笔数据
Apple,Orange,Grapes,Red,Orange,Green,Yellow,
香蕉,Chickoo Gray

预期结果

 第一笔数据第二笔数据
苹果红
橙色橙色
葡萄绿色
香蕉黄色
Chickoo灰色

解决方案

您在for循环中犯了一个小错误。

你的代码做一些小的修改:

$ p $ lt; code> function email(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName(Bulk);
var lastrow = bulk.getLastRow();

var data1 = bulk.getRange(1,2,lastrow).getValues(); //水果列
var data2 = bulk.getRange(1,3,lastrow).getValues(); // color column

var report =
var fruitTable =;
for(var i in data1){
if(data1 [i]!=)fruitTable + =< tr>< td style ='padding:5px'> + data1 [i] +< / td>< td style ='padding:5px'> + data2 [i] +< / td>< / tr>;
}

report =< table>< tr>< th>第一数据< th>第二数据< / th>< / tr> + fruitTable +< / table>;

MailApp.sendEmail(Session.getActiveUser()。getEmail(),
Your report,report,{htmlBody:report});
}

我希望这会回应您的需求。

哈罗德


The following code sends out an email for data in columns 2 and 3, however the results in email are not one below another.

Code.gs
function email() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();

  var data1 = bulk.getRange(1, 2, lastrow).getValues();
  var data2 = bulk.getRange(1, 3, lastrow).getValues();

  var onedata="", twodata="";

  for (var i =1; i < data1.length; i++) {
    if (onedata.length) {
              onedata += ", ";
    }
   onedata += data1[i] 
  }

  for (var i =1; i < data2.length; i++) {
    if (twodata.length) {
              twodata += ", ";
    }
   twodata += data2[i] 
  }

  var report = ""

  report += "<tr><td style='padding:5px'>" + onedata + "</td><td style='padding:5px'>" + twodata + "</td></tr>";


  report ="<table><tr><th'>First data</th><th>Second data</th></tr>" + report + "</table>";

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
                    "Your report", report, {htmlBody: report});

  }

Results received in email

First data                  Second data
Apple, Orange, Grapes,      Red, Orange, Green, Yellow,
Banana, Chickoo             Grey

Result expected

First data  Second data
Apple       Red
Orange      Orange
Grapes      Green
Banana      Yellow
Chickoo     Grey

解决方案

you made a little mistake with the for loop.

here your code with some little modifications:

function email() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();

  var data1 = bulk.getRange(1, 2, lastrow).getValues(); // fruit column
  var data2 = bulk.getRange(1, 3, lastrow).getValues(); // color column

  var report = ""
  var fruitTable ="";
  for(var i in data1){
    if(data1[i]!="") fruitTable += "<tr><td style='padding:5px'>" + data1[i] + "</td><td style='padding:5px'>" + data2[i] + "</td></tr>";
  }

  report ="<table><tr><th>First data</th><th>Second data</th></tr>" + fruitTable + "</table>";

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
                    "Your report", report, {htmlBody: report});
}

I hope this will respond to your needs.
Harold

这篇关于将电子表格作为电子邮件发送(格式问题)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆