Google apps script 通过电子邮件发送谷歌电子表格中的范围(格式问题)

Google apps script 通过电子邮件发送谷歌电子表格中的范围(格式问题),google-apps-script,google-sheets,google-spreadsheet-api,Google Apps Script,Google Sheets,Google Spreadsheet Api,下面的代码为第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();

下面的代码为第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 < 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});

  }
预期结果

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

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

下面是您的代码,稍作修改:

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});
}
功能电子邮件(){
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 report=“”
var-fructable=“”;
用于(数据1中的变量i){
if(data1[i]!=“”)子表+=“”+data1[i]+“”+data2[i]+“”;
}
report=“第一个数据第二个数据”+结果表+”;
MailApp.sendEmail(Session.getActiveUser().getEmail(),
“你的报告”,报告,{htmlBody:report});
}
我希望这能满足您的需要。

Harold

表的构造有一些错误,下面是一个简单循环的代码,请随意调整它以您想要的方式。。。因为它增加了一些我用来让我的测试更容易的功能。。。(风格+条件)

功能电子邮件(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var bulk=ss.getSheetByName(“bulk”);
var lastrow=bulk.getLastRow();
var data=bulk.getRange(1,2,lastrow,2).getValues();
var tableData=“第一个数据第二个数据”
对于(变量i=1;i

编辑:

利用哈罗德的回答,我添加了一些风格,使它更“性感”;-)

功能电子邮件(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var bulk=ss.getSheetByName(“bulk”);
var lastrow=bulk.getLastRow();
var data=bulk.getRange(1,2,lastrow,2).getValues();
var tableData='First dataSecond data'
对于(变量i=1;i
oops,对不起,我们几乎同步发布!有趣的是,我们得到了非常相似的代码^^^哈哈!事实上,我们的答案非常相似,但在阅读了你的代码后,我必须承认你的答案更“性感”,带有“空”语句。我在谷歌上搜索了“性感代码”的定义,但没有找到任何结果:-)你应该在某个地方发布一个定义……谢谢,我很感激!!谢谢你们和Serge Insas的答案,虽然我使用了Serge的性感代码,但我已经将你们的答案标记为完整,我相信Serge会对此感到满意。谢谢Serge,它工作完美,是的,它看起来也很性感。关于日期格式的任何帮助,我有2014年2月10日(2月10日),但是结果是“2014年10月2日星期四00:00:00 GMT+0530(IST)”。我们能换成“2014年2月10日”吗您可以使用设置日期格式。Vasim,如何解决“2014年10月2日星期四00:00:00 GMT+0530(IST)”?你能告诉我你是如何改变格式的吗?在我的卡西专栏中,有“29/11/2016 10:00”,出现“2016年11月29日星期二10:00:00 GMT-0300(艺术)”
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});
}
function email() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();
  var data = bulk.getRange(1, 2, lastrow,2).getValues();  
  var tableData = "<table border=1><th>First data</th><th>Second data</th>"

  for (var i =1; i < data.length; i++) {
    var d1=data[i][0]==''?'empty ':data[i][0];
    var d2=data[i][1]==''?'empty ':data[i][1];
    tableData+="<tr><td>"+d1+"</td><td>"+d2+"</td></tr>"
  }
  tableData+="</table>";

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
                    "Your report", "html only", {htmlBody: tableData});
}
function email() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();
  var data = bulk.getRange(1, 2, lastrow,2).getValues();  
  var tableData = '<TABLE style="border-collapse:collapse;"border = 1 cellpadding = 5 ><th style=color:blue>First data</th><th style=color:green>Second data</th>'

  for (var i =1; i < data.length; i++) {
    var d1=data[i][0]==''?'empty':data[i][0];
    var d2=data[i][1]==''?'empty':data[i][1];
    tableData+="<tr><td style=color:blue>"+d1+"</td><td style=color:green>"+d2+"</td></tr>"
  }
  tableData+="</table>";

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