Google apps script 如何使用GAS/App脚本在googlesheets中设置过滤行的背景色
我有一个GoogleSheets文件,我在其中根据单列标准过滤行。如果列中的某个单元格为空,我将过滤整行。但现在我的问题是,我试图设置过滤行的背景色。但在尝试以下代码时,我不断遇到以下错误:“TypeError:rows.filter(…).setBackground不是函数”:Google apps script 如何使用GAS/App脚本在googlesheets中设置过滤行的背景色,google-apps-script,google-sheets,background-color,Google Apps Script,Google Sheets,Background Color,我有一个GoogleSheets文件,我在其中根据单列标准过滤行。如果列中的某个单元格为空,我将过滤整行。但现在我的问题是,我试图设置过滤行的背景色。但在尝试以下代码时,我不断遇到以下错误:“TypeError:rows.filter(…).setBackground不是函数”: var mydata3 = rows.filter(row => row[8] == '').setBackground("red"); 有人知道我如何做到这一点吗?或者有什么解决办法吗?因
var mydata3 = rows.filter(row => row[8] == '').setBackground("red");
有人知道我如何做到这一点吗?或者有什么解决办法吗?因为我可以看到setBackground不是mydata3的数据类型,它基本上是一个过滤行
谢谢
var sss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var sheetID = sss.getSheetId(); // get the id of first page
var values = sss.getDataRange().getValues();
var getRangeRow2 = sss.getDataRange().getRow()[5];
var getRangeCol2 = sss.getDataRange().getColumn()[1];
function insertRecord() {
var sheet_1 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var headerRowNumber = 3;
var rows = sheet_1.getDataRange().offset(headerRowNumber, 0, sheet_1.getLastRow() -
headerRowNumber).getValues();
var mydata3 = rows.filter(row => row[8] == '');
}
试着这样做:
function insertRecord() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheets()[0];
const rg=sh.getRange(3,1,sh.getLastRow()-2,sh.getLastColumn());
let vs=rg.getValues()
var rows=vs.map(function(r,i){
if(r[8]=='') {
sh.getRange(i+3,1,1,sh.getLastColumn()).setBackground('#ff0000');
return r;
}
}).filter(function(e){return e;});
console.log(rows);
}
为什么不使用公式?对不起,兄弟,但这不起作用。我所要做的就是将过滤后的行更改为背景色。对不起,库珀,还有一个问题。是否有一种方法可以对背景颜色的行进行排序?谢谢。如果我理解你的要求,你将不得不根据背景颜色对数据进行排序,同时你也会对背景颜色进行排序,以便它们随数据移动。您可能可以使用排序函数实现这一点。以下是我目前获得的排序函数,但不知道如何告诉它对红色行进行排序:sort\u DATA\u RANGE=“A4:J999”;var SORT_ORDER=[{列:8,升序:true}];函数multiSortColumns(){var ss=SpreadsheetApp.getActiveSpreadsheet();var sheet=ss.getSheetByName(sheet_NAME);var SORT_DATA_RANGE=“A4:I”;var RANGE=sheet.getRange(SORT_DATA_RANGE);RANGE.SORT(SORT_ORDER);ss.toast('SORT complete');}我说的是从getValues对数据数组和背景数组进行排序()和getBackgrounds();