过滤标准电子邮件报告
问题描述:
我希望收到每日报告中未在我的电子表格中标记为“已完成”的项目。我有将通过电子邮件发送报告的代码,但我需要添加一行或两行代码,以过滤出状态不等于“已完成”的任何内容。此外,随着此项目的增长,我想添加功能以根据多个项目进行过滤(例如,仅显示Col D中标记为完成的项目,并将其分配给Col B中的Greg)。过滤标准电子邮件报告
片是在这里:https://docs.google.com/spreadsheets/d/1jA4XQa7MgQI7OOLwCcmGv7BcUKSjdIPyh6B0CeQI-PI/edit#gid=0
因为目前的情况是我的代码...
function emailStatusReport() {
// Set variables.
var x = 13;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = ss.getSheetByName('data');
var template = HtmlService.createTemplateFromFile("report.html");
var message;
var subject;
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
var theRange = ss.getDataRange();
var completeMessage = "";
//Logger.log(theRang.getA1Notation());
var theManualRange = ss.getRange("A1:C7");
// var dateTimeStamp = now();
var vals = theManualRange.getValues();
for(i=0; i<vals.length; i++){
var itemNumber = vals[i][0];
var title = vals[i][1];
var description = vals[i][2];
// Logger.log(itemNumber + " " + title + " " + description + " ");
completeMessage = completeMessage + ("<BR>" + itemNumber + " " + title + " " + description + "</BR>");
}
Logger.log(completeMessage);
// Logger.log (x);
// Logger.log (ss);
// Logger.log (sheetName);
// Logger.log ("Remaining email quota: " + emailQuotaRemaining);
// Logger.log (vals[i][0]);
subject = "Daily Status Report TEST..."
message = "<HTML><BODY>" +
"<Font Face='verdana' color='green' size='2'>" +
"<P><P><B>Daily Status Report TEST</B>" +
"<P>Please review the report listed below. " +
// "<P>The value of x is " + x + "." +
"<P>" + completeMessage +
"<P><P>" +
"For the most up-to-date information, please visit: <BR>" +
"https://docs.google.com/spreadsheets/d/1jA4XQa7MgQI7OOLwCcmGv7BcUKSjdIPyh6B0CeQI-PI/edit#gid=0" +
"<P>" +
"<P><B>Make it an amazing day!</B>" +
// "<P>Report generated at: " + dateTimeStamp + ". " +
"<P>Remaining daily email quota: " + emailQuotaRemaining + ". " +
// "<P>This report runs between ___ AM and ___ AM." +
"</HTML></BODY>";
MailApp.sendEmail("[email protected]", subject, "", {htmlBody: message});
// Logger.log("Subject is :" + subject);
// Logger.log("Message is: " + message);
}
答
对于你的问题:要接收未标记项目的每日报告“已完成”
首先改变手动量程,包括状态栏:
var theManualRange = ss.getRange("A1:D7");
然后将您的for循环更改为:
for(i=0; i<vals.length; i++){
var itemNumber = vals[i][0];
var title = vals[i][1];
var description = vals[i][2];
var status = vals[i][3];
// Logger.log(itemNumber + " " + title + " " + description + " ");
if (status != 'Completed') {
completeMessage = completeMessage + ("<BR>" + itemNumber + " " + title + " " + description + "</BR>");
}
}