javascript - 格式不工作的 Google Appscript 电子邮件范围
问题描述
我正在尝试通过电子邮件将范围作为表格发送,其格式与工作表中的格式相同,我在它发送表格的地方得到了它,但它会将任何空格显示为“无”一词,并且没有添加任何格式。
我一直在寻找一个正确的解决方案,并且有一些答案很好,但没有正确的表格格式,有什么建议吗?
在我的代码下面:
function sendMail(){
var shh = SpreadsheetApp.getActiveSpreadsheet();
var sh = shh.getSheetByName('Email');
var data = sh.getRange("A1:J34").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 += '<tr>';
for (col = 0 ;col<data[row].length; col++){
if (data[row][col] === "" || 0) {htmltable += '<td>' + 'None' + '</td>';}
else
if (row === 0) {
htmltable += '<th>' + data[row][col] + '</th>';
}
else {htmltable += '<td>' + data[row][col] + '</td>';}
}
htmltable += '</tr>';
}
htmltable += '</table>';
Logger.log(data);
Logger.log(htmltable);
MailApp.sendEmail('example@gmail.com', 'Daily report','' ,{htmlBody: htmltable})
}
解决方案
根据我的复制,HTML 格式是正确的,因此只需要替换硬编码的“无”值。您可以像这样放置一个空格:
编辑:您需要
getBackgrounds
在范围上使用,然后将数组元素复制到循环中的 HTML 字符串中。
function sendMail(){
var shh = SpreadsheetApp.getActiveSpreadsheet();
var sh = shh.getSheetByName('Email');
var r = sh.getRange('A1:J34');
var data = r.getValues();
var bgcolors = r.getBackgrounds();
...
for (col = 0 ;col<data[row].length; col++){
// put white space when empty
if (data[row][col] === "" || 0) {htmltable += '<td style="background-color:' + bgcolors[row][col] + ';">' + ' ' + '</td>';}
else
if (row === 0) {
htmltable += '<th style="background-color:' + bgcolors[row][col] + ';">' + data[row][col] + '</th>';
}
else {htmltable += '<td style="background-color:' + bgcolors[row][col] + ';">' + data[row][col] + '</td>';}
}
推荐阅读
- javascript - Number.toPrecision() 的默认参数值
- docker - Ubuntu Docker 服务器限制为 114 个容器
- c# - 在 Windows 中移动光标并保持新位置一段时间
- javascript - webpack 中模块的 id 生成不正确
- mysql - 计算一行中填充的列数
- jboss - Jboss 中的启动行为
- datetime - 从 IICS 读取 dateformat (AM/PM) csv 到 Snowflake TIMESTAMP_NTZ(9)
- html - 为什么我的表单文本输入值作为列表发布?
- c# - 在 Selenium 中使用等待元素可点击方法的随机错误
- r - 嵌套 if else 语句