У меня есть таблица Google с несколькими проектами. На листе также есть имена руководителей проектов, которые управляют этими проектами. Один руководитель проекта может управлять до 5 проектами на go. Лист выглядит так.
введите описание изображения здесь
Я хотел бы сгруппировать данные каждой строки по столбцу F (электронная почта) и отправить одно электронное письмо каждому руководителю проекта по проектам, которыми они управляют, например, Тим Карри будет получить таблицу, в которой перечислены только проекты, которые он возглавляет. Мой код ниже не подходит для выполнения sh этой задачи, и я буду признателен за помощь в его изменении, чтобы сгруппировать данные и отправить их как HTML.
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 3; // First row of data to process
var numRows = 12; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 12)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
var emails = data.map(function (e) {
return e[5];
})
var uniqueEmails = [...new Set(emails)];
for (var j = 0; j < uniqueEmails.length; j++) {
var subject = "";
var body = "Please see if your project is on course, if not foward this email to PMS admin"
for (var i = 0; i < data.length; i++) {
if (data[i][5] == uniqueEmails[j]){
var row = data[i];
var projectnumber = row[0];
var startdate = row[1];
var enddate = row[2];
var projectname = row[3];
var projectlead= row[4];
var email= row[5];
var lr = sheet.getLastRow();
var tableRangeValues=sheet.getRange(2,1, lr-1,6).getDisplayValues();
var htmlTemplate = HtmlService.createTemplateFromFile("Notify")
htmlTemplate.projectnumber = projectnumber;
htmlTemplate.startdate= startdate;
htmlTemplate.enddate= enddate;
htmlTemplate.projectname= projectname;
htmlTemplate.projectlead=projectlead;
htmlTemplate.email=email;
var htmlForEmail = htmlTemplate.evaluate().getContent();
if (enddate instanceof Date && enddate.getTime()>= new Date(07/14/20).getTime()) {
var emailSent = row[6];
if (emailSent != "Y") {
subject += "Action Required - Project End";
}
}
}
}
if(subject.length > 0){
MailApp.sendEmail({
to: uniqueEmails[j],
cc: "example@gmail.com",
subject: subject,
body: body
});
}
}
}
Уведомить HTML Код таблицы:
<thead>
<tr>
<th><?=projectnumber?></th>
<th><?=startdate?></th>
<th><?=enddate?></th>
<th><?=projectname?></th>
<th><?=projectlead?></th>
<th><?=email?></th>
</tr>
</thead>
<tbody>
<?tableRangeValues.forEach(r=>{?>
<tr>
<td><?=r[0]?></td>
<td><?=r[1]?></td>
<td><?=r[2]?></td>
<td><?=r[3]?></td>
<td><?=r[4]?></td>
<td><?=r[5]?></td>
</tr>
<?})?>
</tbody>
</table>