我正在尝试以电子邮件形式导出特定范围的单元格。单元格以某种方式进行格式化,并具有与颜色编码相关的条件格式。
这是我的演示页:https://docs.google.com/spreadsheets/d/1ibB87Vhz7wTjKrIrasYSRLoAiadQHtNqqmyl-xywtOI/edit?usp=sharing
我已经成功发送了电子邮件,但是我无法弄清楚如何使用相关的格式,条件格式,字体,边框等。
当前,它正在使用displayValues,并用逗号将其列出。我还希望摆脱昏迷,如果可能的话,将范围限制为只有数据在该范围内的单元格。
这就是我所拥有的:
function sendReport(){
var incidents = SpreadsheetApp.getActiveSheet().getRange(2,1,4,1).getDisplayValues();
var subjectRange = SpreadsheetApp.getActiveSheet().getRange("A1");
var subjectCell = subjectRange.getValues();
for (i in subjectCell) {
var rowData = subjectCell[i];
var subject = rowData [0];
}
MailApp.sendEmail("emailaddress@domain.com",
subject,
incidents);
}
答案 0 :(得分:0)
那是因为您实际上是在电子邮件中发送Array
(因为getValues()
返回二维Array
)。如果要保持格式,则应通过对该数组进行迭代来构造一个html表,然后通过options中的htmlBody
属性将结果附加到电子邮件正文中。
看看documentation,了解有关如何从Range
获取样式的详细信息。您必须将每个样式映射到要格式化的style=""
的{{1}}属性中,这样(以节省资源,批量样式化并包含在HtmlElement
循环中):< / p>
Array
-getFontColors()
(如果适用,则适用于color:{method result}
); HtmlTableElement
-getFontFamilies()
; 或仅使用font-family:{method result}
批量获取所有样式,并使用appropriate methods访问单个样式属性(请注意,您仍然需要使用getTextStyles()
方法访问背景颜色,使用{{ 1}}等。