2017-08-13 126 views
0

我有一个脚本,以发送电子邮件,但不能发送按我想要的格式。 难道是可以发送电子邮件这样的: - enter image description here发送电子邮件按所需的格式应用脚本

现在我的脚本发送这样的: -

TF,无资金准备,平台,链接,, TF,无资金准备的,,数据,链接,日期,圆形,基金,域名,,日期,圆形,拨款,,域名,已完成的更改,,,,,, 7月02,公司注册,2037.41,沙棘Vadakke Parambath,维奈·古普塔加入轮,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

我的代码是:

enter image description here

回答

1

您可以使用这样一个循环。如果你想得到更好的回应,将来我会建议让我们访问一个电子表格,其数据与示例一致,并访问脚本编辑器。从图像复制代码或数据很困难。这使得人们不太可能会站出来帮助你。如果你自己试着对代码进行刺探,也会很感激。这段代码确实有效,我用假数据对它进行了测试。

这将逗号分隔的所有值,它发送一行。最后一列必须是空的才能有资格发送,而8列不能为空。

function SendingEmails() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sh=ss.getActiveSheet(); 
    var startRow=5; 
    var rg=sh.getDataRange(); 
    var vA=rg.getValues(); 
    var subject='Your Subject'; 
    var emailaddress='Your Email Address'; 
    for(var i=startRow-1;i<vA.length;i++) 
    { 
    if(!vA[i][vA[0].length-1] && vA[i][7])//not already sent and some data is available 
    { 
     //Logger.log('Send Mail: %s',formatAsTable(vA[i])); 
     //var userInterface=HtmlService.createHtmlOutput(formatAsTable(vA[i])); 
     //SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Format As Table') 
     MailApp.sendEmail(emailaddres,subject,vA[i].join(',')) 
     sh.getRange(i+1,vA[0].length).setValue('mailsent'); 
    } 
    } 
} 

function formatAsTable(vA) 
{ 
    var s='<style>table{border:1px solid #000;}th,td{border:1px solid #000;}"</style><table><tr>'; 
    for(var i=0;i<vA.length-1;i++) 
    { 
    s+='<td>' + vA[i] + '</td>'; 
    } 
    s+='</tr></table>'; 
    return s; 
} 
+0

嗨库珀,我真的很感激您宝贵的答复。上面的代码对我来说有点困难。请在下面找到工作表链接。我需要将突出显示的区域通过电子邮件发送至表格。 https://docs.google.com/spreadsheets/d/19K8vM99ftC23HnuSQqjIB8kZ-ulCLtoTffn6slxGdVI/edit#gid=0 – Jyotiranjan

+0

你好库珀,是我不好!我没有给予权限。现在我已经做了必要的改变。请帮助我。提前致谢! – Jyotiranjan

+0

好的,这是给你的。你能弄清楚电子邮件地址和主题。 – Cooper

0

我建议你安装SheetConverter(由David Bingham(Mogsdad)创建)。谷歌它,它提供了如何安装图书馆的伟大说明。我修改了这个例子:

function example() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var range = ss.getActiveSheet().getDataRange(); 
var conv = SheetConverter.init(ss.getSpreadsheetTimeZone(), 
          ss.getSpreadsheetLocale()); 
// Grab an array for formatted content 
var array = conv.convertRange(range); 
    // Get a html table version, with all formatting 
    var html = conv.convertRange2html(range); 
    MailApp.sendEmail(Session.getActiveUser().getEmail(), 'Daily report','' ,{htmlBody: html}) 
} 

它发送了一个测试,我完全设置了您的数据。

+0

你好,尼尔森,谢谢!但是当我运行我的脚本时,需要很长时间。另一方面,谷歌正在警告库存发烧,因为它不是经过验证的代码。 – Jyotiranjan

相关问题