我有一个代码,该代码从定义范围的Google表格发送数据。该数据范围将使用公式自动填充。 一旦这将自动填充并填充数据,然后将发送我已为其设置触发器的电子邮件。
我有一个脚本,该脚本正在发送包含范围内数据的电子邮件,但只想在字段中包含数据时发送电子邮件。
function email() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName("Bulk");
var lastrow = bulk.getLastRow();
var data = bulk.getRange(1, 2, lastrow,2).getValues();
var tableData = '<TABLE style="border-collapse:collapse;"border = 1 cellpadding = 5 ><th style=color:blue>First data</th><th style=color:green>Second data</th>'
for (var i =1; i < data.length; i++) {
var d1=data[i][0]==''?'empty':data[i][0];
var d2=data[i][1]==''?'empty':data[i][1];
tableData+="<tr><td style=color:blue>"+d1+"</td><td style=color:green>"+d2+"</td></tr>"
}
tableData+="</table>";
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"Your report", "html only", {htmlBody: tableData});
}
一旦以上脚本运行,那么它应该仅在没有数据的情况下发送电子邮件。数据将使用公式填充。我将使用时间触发器来安排运行时间。
答案 0 :(得分:0)
empty
,如果在数据中找到内容,该变量将被设置为false: var empty=true;
for (var i =1; i < data.length; i++) {
if(data[i][0]!=""||data[i][1]!=""){
empty=false;
}
var d1=data[i][0]==''?'empty':data[i][0];
var d2=data[i][1]==''?'empty':data[i][1];
tableData+="<tr><td style=color:blue>"+d1+"</td><td style=color:green>"+d2+"</td></tr>"
}
tableData+="</table>";
if(empty==false){
Logger.log('not empty');
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"Your report", "html only", {htmlBody: tableData});
}
答案 1 :(得分:0)
我用下面的代码弄清楚了,只有当该列中存在数据时,它才会发送电子邮件。
function CCemail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName("testRollcallremaining");
var lastrow = bulk.getLastRow();
var data = bulk.getRange(1, 4, lastrow,2).getValues();
var tableData = '<TABLE style="border-collapse:collapse;"border = 1 cellpadding = 5 >'
var rollcal_len=bulk.getRange("D1:D").getValues().filter(String).length;
var rollcall_data=bulk.getRange("D1:D"+rollcal_len).getValues();
Logger.log(rollcall_data)
if(rollcal_len>1){
for (var i =0; i < rollcal_len; i++) {
var d1=rollcall_data[i];
tableData+="<tr><td style=color:blue>"+d1+"</td></tr>"
}
tableData+="</table>";
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"Rollcoll Pending List", "html only", {htmlBody: tableData});
}else{ Logger.log("Roll bCk Data is 0")}
}