使用MailApp从htmlBody中的电子表格发送格式化数据

时间:2016-04-12 15:38:15

标签: google-apps-script google-sheets

我正在尝试从Google电子表格中自动发送一些数据。 它工作正常,但布局是纯文本,没有格式化,如在标准CSV文件中。

我在Google Developer网站上找到了Sending emails from a Spreadsheet tutorial,我希望将我的Google电子表格中的一个范围添加为HTML 在邮件内容中。但我无法弄清楚如何做到这一点。

我尝试使用函数MailApp.sendEmail ({recipient, subject, htmlBody: body});,但在定义我的" var body"我显然有问题。

范围类似于A1:E15,其中第A行包含标题。

在邮件中我得到了这个:

  

[对象]

我所需要的只是电子表格中行和列中的数据 明智的解决方案是定义一个起始位置,如单元格A1,然后显示/使用数据直到下一个空行。

1 个答案:

答案 0 :(得分:1)

由于您已经拥有从电子表格发送数据的代码,因此我们只会查看如何为格式良好的输出生成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});
...