Правильный скрипт для отправки только последней строки данных в Google Sheets - PullRequest
0 голосов
/ 08 марта 2019

Сценарий, который я имею, отправляет информацию в нужном мне формате. У меня проблема в том, что он отправляет каждую строку в виде отдельного электронного письма, а не только самые последние данные. Я хочу, чтобы отправлялась только последняя строка данных.

function CustomEmail() {
    var sheet = SpreadsheetApp.getActiveSheet();
        lastRow = sheet.getLastRow();
        startrow= 2;
    var range = sheet.getRange("A2:Z1000");
    var UserData = range.getValues();
    for (i in UserData) {
       var row = UserData[i];
       var name = row[2];//market 
       var senderEmail = ''
       if (name === 'South') 
       {senderEmail = 'tom@no.com';}
       else if (name === 'West') 
       {senderEmail = 'bob@bob.com';}
       else if (name === 'East') 
       {senderEmail = 'non@no.com';}
       var AgentOwner = row[18];//Agent Owner
       var address = row[20];//Address
       var City = row[21];//City
       var State = row[22]//state
       var Incident = row[17]//incident type
       var Date = row[4]//date and time

  emailBody = "New Security Incident Report from: " +AgentOwner+ "\nAddress: " +address+ "\nCity: " +City+ "\nState: " +State + "\nIncident: " +Incident +  "\nDateTime:" +Date

  MailApp.sendEmail(senderEmail,"Security Incident Report", emailBody);
}

}

1 Ответ

0 голосов
/ 09 марта 2019

Попробуйте это -

function CustomEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn())[0];
  Logger.log(row);
  var name = row[2]; //market
  var senderEmail = '';
  if (name === 'South') {
    senderEmail = 'tom@no.com';
  } else if (name === 'West') {
    senderEmail = 'bob@bob.com';
  } else if (name === 'East') {
    senderEmail = 'non@no.com';
  }
  var AgentOwner = row[18]; //Agent Owner
  var address = row[20]; //Address
  var City = row[21]; //City
  var State = row[22]; //state
  var Incident = row[17]; //incident type
  var Date = row[4]; //date and time

  emailBody =
    'New Security Incident Report from: ' +
    AgentOwner +
    '\nAddress: ' +
    address +
    '\nCity: ' +
    City +
    '\nState: ' +
    State +
    '\nIncident: ' +
    Incident +
    '\nDateTime:' +
    Date;

  MailApp.sendEmail(senderEmail, 'Security Incident Report', emailBody);
}

Редактировать: Перейти к сценарию, вставить новый код, запустить функцию, затем в меню, Вид> Журнал и посмотретьесли значения строк записаны правильно.Если возникнут проблемы с индексами данных, исправьте их соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...