我需要在一封电子邮件摘要中发送多行和多列数据。
理想情况下,据我了解,我需要根据当前单元格是否处于下降状态来过滤结果。
我能够定义当前星期,但是我不确定如何将其集成并过滤到我的sendMail脚本中。
此外,电子邮件当前会在表格中显示结果,是否有任何方法可以格式化数据以使其按以下顺序显示?
Row[1]
Row[2]
Row[3]
Row[1]
Row[2]
Row[3]
Row[1]
Row[2]
Row[3]
我的问题是,在几周内我可能要发送三行以上的数据
道歉,如果其中任何一个都不明确,对此表示陌生,但出于工作目的需要它。
/
/Defining the current week//
function getWeekDates() {
var now = new Date();
var dayOfWeek = now.getDay(); //0-6
var numDay = now.getDate();
var start = new Date(now); //copy
start.setDate(numDay - dayOfWeek);
start.setHours(0, 0, 0, 0);
var end = new Date(now); //copy
end.setDate(numDay + (7 - dayOfWeek));
end.setHours(0, 0, 0, 0);
return [start, end];
}
var [start, end] = getWeekDates();
console.log(start.toLocaleString(), end.toLocaleString());
function filterDatesByCurrentWeek(dates){
var [start, end] = getWeekDates();
return dates.filter(function(d) {return +d >= +start && +d < +end});
}
function sendEmail1(event){
const ss = SpreadsheetApp.getActive().getSheetByName('Sheet1')
const data = ss.getRange(“A1:E50 ").getValues();
const row = ss.getDataRange().getValues();
const currentColumn = event.range.columnStart;
if (ss.getName() !== 'Sheet1' || currentColumn !== 4 )
return;
if (!event.value.match(/^(Deployed)$/))
return;
Logger.log(row);
Logger.log(row[5]);
// Sending the email
var emailBody = "Hi" + "<br><br>" + "Test:" + " <strong> " + "<br>" + row[0] + "</strong> \n\n"
+ "<br>" + "\n"+ "<strong>" + "Scores: "+ "</strong> \n" +row[4]
+ "<br>" + " <strong> " + "Description: " +"</strong> \n\n" + row[2]
+ "<br>" + "<strong>"+ "Number of Labels: " + "</strong> \n" + row[6]
+ "<br><br>" + "Yours truly," + "<br>" + "Test";
var subject = "Test";
Logger.log("sending email");
MailApp.sendEmail('Email', subject, emailBody, {htmlBody: emailBody, cc: 'Email'});
Logger.log("email sent");
}