我正在尝试从Google电子表格中自动发送一些数据。 它工作正常,但布局是纯文本,没有格式化,如在标准CSV文件中。
我在Google Developer网站上找到了Sending emails from a Spreadsheet tutorial,我希望将我的Google电子表格中的一个范围添加为HTML 在邮件内容中。但我无法弄清楚如何做到这一点。
我尝试使用函数MailApp.sendEmail ({recipient, subject, htmlBody: body});
,但在定义我的" var body"我显然有问题。
范围类似于A1:E15
,其中第A行包含标题。
在邮件中我得到了这个:
[对象]
我所需要的只是电子表格中行和列中的数据 明智的解决方案是定义一个起始位置,如单元格A1,然后显示/使用数据直到下一个空行。
答案 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});
...