Отправить имена клиентов по электронной почте драйверам
Считайте, что это отправная точка, поскольку я даже не пытался ее отладить. Однако, если вы предоставите данные в виде csv, я буду рад это сделать. Обратите внимание, что я не просил и не хочу ссылки на вашу электронную таблицу. Ваш отредактированный файл данных будет в порядке. Вы можете разместить его в своем вопросе, как код. Все, что вы не хотите публиковать c, должно быть отредактировано. Также было бы полезно иметь изображения ваших электронных таблиц.
function sendCustomerlistToDrivers() {
var ss=SpreadsheetApp.getActive();
var dsh=ss.getSheetByName('Driver');
var dsr=2;//drivers starting row
var drg=dsh.getRange(dsr,1,dsh.getLastRow()-dsr+1,dsh.getLastColumn());
var dv=drg.getValues();
var rsh=ss.getSheetByName('Routes');
var rsr=2;//routes starting row
var rsc=11;//routes starting col
var rrg=rsh.getRange(rsr,rsc,rsh.getLastRow()-rsr+1,rsh.getLastColumn()-rsc+1);
var rv=rrg.getValues();
var rhA=rsh.getRange(rsr-1,rsc,1,rsh.getLastColumn()-rsc+1).getValues()[0];//assume header is one less than starting row
var rcols={};
rhA.forEach(function(h,i){rcols[h]=i+rsc;});
dv.forEach(function(r,i){
var driverEmail=r[17];//R
var driverRoute=r[5];//F
var driverName=r[1];//B
var custNames=rsh.getRange(rsr,rcols[driverRoute],rsh.getLastRow()-rsr+1,1).getValues().map(function(){return r[0];}).filter(function(e){return e;}).join('\n');
var msg=Utilities.formatString('\nRoute Number: %s\nCustomer Names: %s', driverRoute,custNames);
GmailApp.sendEmail(driverEmail, 'Customer Names', msg)
});
}