Отправить по электронной почте много строк в листе Google на основе значения - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть вкладка «Драйверы», в которой есть «Имена драйверов» в столбце B, «Номера маршрутов» в столбце F и «Электронная почта водителя» в столбце R.

У меня есть еще одна вкладка под названием «Маршруты» это показывает всех клиентов, которые находятся в каждом маршруте, и они отсортированы по номеру маршрута от столбца K до S.

Я хотел бы отправить индивидуальный список клиентов каждому водителю в соответствии с их номером маршрута.

Любая идея, как я могу это сделать, я очень мало знаю о скриптах Google, я сделал основы c вещи, которые я даже не могу понять, с чего начать

спасибо заранее

1 Ответ

0 голосов
/ 25 февраля 2020

Отправить имена клиентов по электронной почте драйверам

Считайте, что это отправная точка, поскольку я даже не пытался ее отладить. Однако, если вы предоставите данные в виде 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)
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...