首页 > 解决方案 > 更正脚本以仅发送 Google 表格中的最后一行数据

问题描述

我拥有的脚本以我想要的格式发送信息。我遇到的问题是它将每一行作为单独的电子邮件发送,而不是仅发送最新数据。我只想发送最后一行数据。

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);
}

}

标签: javascriptformsgoogle-sheetsrow

解决方案


试试这个 -

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);
}

编辑: 转到脚本,粘贴新代码,运行函数,然后在菜单中,查看 > 日志并查看是否正确记录了行值。如果数据索引有任何问题,请相应地调整它们。


推荐阅读