因此,我有一个 Google 电子表格,并希望通过使用 Google 电子表格触发器将“每日报告”表格中的一部分范围作为 HTML 表格通过电子邮件发送来创建自动每日报告。
我在工作表中有一些条件格式,以使其绘制列中具有 MAX(value) 的列中的所有单元格。
我设法创建了下面的代码,该代码将范围通过电子邮件发送给我,但 Gmail 无法将其识别为 HTML 表格,而是纯文本。
我试过在 MailApp.sendEmail 函数中使用 {htmlBody: htmltable} 但 Gmail 只是出错了 ([Ljava.lang.Object;@SOME_HASH.
问题 1:如何通过电子邮件将表格以 HTML 格式而不是纯文本格式发送,并且所有 HTML 标签都可见?
问题 2:我如何改进我的代码以获取 Google Sheets 单元格格式并将其应用于表格单元格,而不是使用临时格式来让表格看起来正常?
function sendMail(){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var data = sh.getRange("A2:O38").getValues();
//var htmltable =[];
var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;'
var htmltable = ['<table ' + TABLEFORMAT +' ">'];
for (row = 0; row<data.length; row++){
htmltable.push ('<tr>');
for (col = 0 ;col<data[row].length; col++){
if (data[row][col] === "" || 0) {htmltable.push('<td>' + 'None' + '</td>');}
else
if (row === 0) {
htmltable.push ('<th>' + data[row][col] + '</th>');
}
else {htmltable.push('<td>' + data[row][col] + '</td>');}
}
htmltable.push('</tr>');
}
htmltable.push ('</table>');
Logger.log(data);
MailApp.sendEmail(Session.getActiveUser().getEmail(), 'Daily report','' ,{htmlBody: htmltable})
}