有没有办法只显示F列中空白的行并通过电子邮件发送。 试图获取所有没有订购设备的行,并每天通过电子邮件发送。
我正在使用这个使用SheetConverter的脚本。 这是我sheet的样子。这是我email的样子。
function convSheetAndEmail(rng, email, subj)
{
var HTML = SheetConverter.convertRange2html(rng);
MailApp.sendEmail(email, subj, '', {htmlBody : HTML});
}
function doGet()
{
var dataRange = SpreadsheetApp.getActiveSpreadsheet().getDataRange();
var emailUser = '****@gmail.com';
var subject = 'Test Email';
convSheetAndEmail(dataRange, emailUser, subject);
}
编辑 你的意思是这样@Yash,我一直得到错误无法在对象中找到getsheet
function convSheetAndEmail(rng, email, subj)
{
var HTML = SheetConverter.convertRange2html(rng);
MailApp.sendEmail(email, subj, '', {htmlBody : HTML});
}
function doGet()
{
var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
for (i in data) {
if (data[i][5] === ""){
var labels=new Array;
labels.push([data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], data[i][5], data[i][6], data[i][7]]);
var emailUser = '****@gmail.com';
var subject = 'Test Email';
convSheetAndEmail(labels, emailUser, subject);
}
}
}
答案 0 :(得分:0)
最简单的方法,也就是我所知道的方法,是: 使用
获取数组中的值var data = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getValues();
然后制作一个循环
for (i in data) {
在此循环中检查订购的商品(data[i][5]
)是否等于您正在寻找的null
。如果是,则将该行推送到数组
var labels=new Array;
label.push([data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], data[i][5], data[i][6], data[i][7]]);
然后将所有数据放在此数组中,您可以使用for循环填充带有标签的窗格Ui。
替代方式是使用"查询" getRange()
上直接为您提供过滤数据的公式
最后你的脚本如下: -
function convSheetAndEmail(rng, email, subj)
{
var HTML = SheetConverter.convertRange2html(rng);
MailApp.sendEmail(email, subj, '', {htmlBody : HTML});
}
function doGet()
{
var data = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getValues();
var labels=new Array;
for (i in data) {
if (data[i][5] === ""){
labels.push([data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], data[i][5], data[i][6], data[i][7]]);
}
}
var emailUser = '****@gmail.com';
var subject = 'Test Email';
convSheetAndEmail(labels, emailUser, subject);
}
答案 1 :(得分:0)
不知道你在哪里面对这个问题。检查此代码,它会对您有所帮助。
首先对F
列的值进行排序,然后从A to H
中选择未填充的单元格。按降序排序F
列,然后按升序排序第一列(仅按顺序获取范围)。
function convSheetAndEmail(rng, email, subj)
{
var HTML = SheetConverter.convertRange2html(rng);
MailApp.sendEmail(email, subj, '', {htmlBody : HTML});
}
function lastValueOfColumn(column) {
var iLastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
var aValues = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + iLastRow).getValues();
for (; aValues[iLastRow - 1] == "" && iLastRow > 0; iLastRow--) {}
return iLastRow;
}
function doGet()
{
var iLastRowOfH = lastValueOfColumn('H');
var ss = SpreadsheetApp.getActiveSpreadsheet().getRange('A1:H' + iLastRowOfH).sort([{column: 6, ascending: false}, {column: 1, ascending: true}]);
var iLastRowOfF = lastValueOfColumn('F') + 1;
var data = SpreadsheetApp.getActiveSpreadsheet().getRange('A' + iLastRowOfF + ':H' + iLastRowOfH);
var emailUser = '****@gmail.com';
var subject = 'Test Email';
convSheetAndEmail(data, emailUser, subject);
}