怎么了!目前,我有一个工作代码,如果“提醒日期” 是今天或之前,并且未勾选“完成” 复选框,则允许从Google表格发送电子邮件。 / p>
当前,我使用TEXTJOIN
函数来合并要发送的任务以及与相同收件人的任务。当我运行代码时,它不会在项目符号中列出项目,而是在一行中列出。我不确定如何重写“消息”部分,以使这些文本连接的值成为项目符号。
这是当前代码:
function sendEmails() {
var now = new Date().toLocaleDateString();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var startRow = 2;
var sheet = ss.getSheetByName ('Tasks')
var numRows = sheet.getLastRow()-1;
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0];
var message = row[2];
var ReminderDate = row[3].toLocaleDateString();
var Status = row[5];
var subject = "Task reminders";
if (ReminderDate > now)
continue;
if (Status != true) {
var Email = {
to: emailAddress,
subject: "Task reminders | "+now,
htmlBody:
"Good day! This is to remind you of the following specific task/s:"+
"<br />"+
"<ul><li>"+message+"</li></ul>"+
"<br /><br />"+
"You can access the Task monitoring sheet by clicking <a href=" + ss.getUrl() + ">here</a>.",
name: "Taks monitoring",
};
MailApp.sendEmail(Email);
sheet.getRange(startRow + i, 5).setValue(now);
SpreadsheetApp.flush();
}
}
}
以下是Google工作表:
这是我收到的信息:
但这是我真正想要的:
我尝试使用Google搜索多个示例,但不确定为什么我似乎没有找到任何类似的案例,所以不确定是否做错了。我希望我可以在这里获得有关如何理解和学习实现目标的指导。我不确定,但是我认为这与代码读取message
的方式有关,或者也许我现在不应该TEXTJOIN
了-只捕获要发送到同一行的各个行人,并通过代码(也不确定如何执行此操作,甚至可能的话)将它们组合在一起。。
答案 0 :(得分:3)
此解决方案假定列表项之间存在单元内换行符。
此行之后:
var message = row[2];
添加此行
message = message.replace(/\n/g, "</li><li>");
它将用HTML标签替换换行符。
答案 1 :(得分:1)
如果我的理解正确,那么这个答案如何?根据您的情况,B2.scss
用作HTML数据。那么如何进行如下修改?请认为这只是几个答案之一。
message
var message = row[2];
和
var message = row[2].split("\n").reduce(function(s, e) {return s += "<li>" + e + "</li>"}, "");
"<ul><li>"+message+"</li></ul>"+
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。