2017-08-13 45 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