2016-04-12 109 views
1

我試圖從Google Spreadsheet中自動發送一些數據。 它工作正常,但佈局是純文本,沒有格式,如在標準的CSV文件中。使用MailApp從htmlBody中的電子表格發送格式化數據

我在Google開發者網站中找到了Sending emails from a Spreadsheet tutorial,我希望我的Google Spreadsheet中的範圍在郵件內容中被添加爲HTML 。但我無法弄清楚如何做到這一點。

我嘗試過使用函數MailApp.sendEmail ({recipient, subject, htmlBody: body});,但是當定義我的「var body」時,我顯然有這個問題。

範圍將類似於A1:E15,其中行A包含標題。

如郵件我得到這樣一個結果:

[對象對象]

所有我需要的是基本的行和列在電子表格中 輝煌的解決方案將數據是定義像A1單元格的開始位置,然後顯示/使用數據直到下一個空行。

回答

0

由於您已經有從電子表格發送數據的代碼,因此我們只會看看如何生成良好格式化輸出的HTML主體。

我已經發布了SheetConverter Library,其中convertRange2html()函數可以給定一個Range對象,並將內容作爲格式化的HTML表格返回。 (庫代碼可作爲gist使用。)

如果庫是新手,請閱讀Google Developers網站上的Libraries overview

爲了獲取發送到自己作爲一個HTML表格的電子表格的所有數據:

... 
var recipient = Session.getActiveUser().getEmail(); 
var subject = "Spreadsheet contents"; 
var range = SpreadsheetApp.getActiveSheet().getDataRange(); 
var htmlTable = SheetConverter.convertRange2html(range); 
var body = "Here is the table:<br/><br/>" 
     + htmlTable 
     + "<br/><br/>The end." 
MailApp.sendEmail({recipient, subject, htmlBody: body}); 
... 
+0

那是你的圖書館嗎,先生?如果是這樣,我給你道具!剛發現它幾天,爲我節省了很多頭痛。 – Gerneio

+0

@Gerneio - 是的,這是我的,我很高興它有幫助!最棘手的部分不再需要,因爲Google已經提供了獲取格式化內容的能力,但它仍然可以正常工作。 – Mogsdad

相關問題