18910140161

Google apps脚本-在if函数中添加脚本,以便HTML表只有某些行-堆栈溢出

顺晟科技

2022-10-19 14:16:16

57

我试图实现一个基于行然后电子邮件的创建HTML表脚本,到目前为止,这部分工作正常,当我试图只向随后发送的表发送某些行时,问题就来了

function myFunction() {
  
  var ss  = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName('2021')//rename sheet name per your file;
  var headers = ws.getRange('A1:H1').getDisplayValues()//get table headers name;
  
  //assign variable to each header value
  var name = headers[0][0]; 
  var leavetype = headers[0][1];
  var fromDate = headers[0][2];
  var toDate = headers[0][3];
  var totaldays = headers[0][4];
  var status = headers[0][5];
  var reportingmanager = headers[0][6];
  var checksum = headers[0][8];; 

  const lr = ws.getRange('B1').getValues()

  var tablerangeValue = ws.getRange(2,1,10,8).getDisplayValues()//get range value, my data range start from 4th row and has 7 columns, pls chage per your need;

  if (checksum == 2);

  var htmlTemplate = HtmlService.createTemplateFromFile('emailTable');

  htmlTemplate.name = name;
  htmlTemplate.leavetype = leavetype;
  htmlTemplate.fromDate = fromDate;
  htmlTemplate.toDate = toDate;
  htmlTemplate.totaldays = totaldays;
  htmlTemplate.status = status;
  htmlTemplate.reportingmanager = reportingmanager;
  htmlTemplate.tablerangeValue = tablerangeValue;

  var htmlForEmail = htmlTemplate.evaluate().getContent();
  
  var toEmail = 'jonathon.banks@westal.com.au';
  var ccEmail = 'jbjono4@gmail.com';

  MailApp.sendEmail({
  to: toEmail,
  cc: ccEmail,
  subject: "Flyscreens Overdue",
  htmlBody:htmlForEmail
     });

}

这是我当前使用的HTML

function myFunction() {
  
  var ss  = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName('2021')//rename sheet name per your file;
  var headers = ws.getRange('A1:H1').getDisplayValues()//get table headers name;
  
  //assign variable to each header value
  var name = headers[0][0]; 
  var leavetype = headers[0][1];
  var fromDate = headers[0][2];
  var toDate = headers[0][3];
  var totaldays = headers[0][4];
  var status = headers[0][5];
  var reportingmanager = headers[0][6];
  var checksum = headers[0][8];; 

  const lr = ws.getRange('B1').getValues()

  var tablerangeValue = ws.getRange(2,1,10,8).getDisplayValues()//get range value, my data range start from 4th row and has 7 columns, pls chage per your need;

  if (checksum == 2);

  var htmlTemplate = HtmlService.createTemplateFromFile('emailTable');

  htmlTemplate.name = name;
  htmlTemplate.leavetype = leavetype;
  htmlTemplate.fromDate = fromDate;
  htmlTemplate.toDate = toDate;
  htmlTemplate.totaldays = totaldays;
  htmlTemplate.status = status;
  htmlTemplate.reportingmanager = reportingmanager;
  htmlTemplate.tablerangeValue = tablerangeValue;

  var htmlForEmail = htmlTemplate.evaluate().getContent();
  
  var toEmail = 'jonathon.banks@westal.com.au';
  var ccEmail = 'jbjono4@gmail.com';

  MailApp.sendEmail({
  to: toEmail,
  cc: ccEmail,
  subject: "Flyscreens Overdue",
  htmlBody:htmlForEmail
     });

}

正如我到目前为止所说的,如果抓取所有行并将其放入表中,但我只希望将某些行放入表中

我在工作表中有一个IF函数,它在应该发送电子邮件时生成1,在不应该发送电子邮件时生成2,这是基于行中的到期日,如果日期早于今天,则生成1,如果到期日晚于今天,则生成2

任何帮助都很好


顺晟科技:

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航