我有一个如下所述的Google工作表。
Col1 Col2 Col3
ABC DEF Test
ABC DEF Pending
ABC DEF Final
ABC DEF Final
ABC DEF Reject
ABC DEF Test
我正在使用下面提到的代码删除行,其中Col3
包含“ Final”或“ Reject”之类的值。
function deleteSelectedRows() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Test');
var rg=sh.getDataRange();
var vA=rg.getValues();
var d=0;
for(var i=1;i<vA.length;i++) {
if(vA[i][2].toString().toLowerCase()=="final" || vA[i][2].toString().toLowerCase()=="reject") {
sh.deleteRow(i-d+1)
d++;
}
}
}
我想将删除的行的详细信息发送到特定的电子邮件ID,采用以下提到的格式。
Col1 Col2 Col3
ABC DEF Final
ABC DEF Final
ABC DEF Reject
答案 0 :(得分:0)
希望,以下代码将为您提供帮助:
function deleteSelectedRows() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName('Test');
var rg = sh.getDataRange();
var vA = rg.getValues();
var d = 0;
var report = [vA[0]];
for(var i = 1; i < vA.length; i++) {
var key = vA[i][2].toString().toLowerCase();
if(key == "final" || key == "reject") {
sh.deleteRow(i - d + 1);
d++;
report.push(vA[i]);
}
}
report = report.map(function(line) {
return line.join("\t");
});
var body = report.join("\n");
MailApp.sendEmail('abc@gmail.com', 'Deleted Rows', body);
}
我们在删除行时保留报告数组。最后,我们加入了double数组以使纯文本通过MailApp发送。
其他问题:如何将其作为附件发送?是的,也有可能。 CSV或Excel格式需要付出更多的努力,但是在这里我们可以显示一个非常简单的示例,其中包含简单的TSV附件以了解方法。让我们如下修改最后的代码行:
var blob = Utilities.newBlob(body, "text/tab-separated-values", '1.tsv');
MailApp.sendEmail('abc@gmail.com', 'Deleted Rows', "See attachment", {
attachments: [blob]
});
我们使用了现成的 body 纯文本,并且仅将其与适当的mime类型一起包装。