Google apps script 可以用公式设置google电子表格单元格的背景色吗?
我知道条件格式,但我希望能够使用公式指定颜色。我正在设计一些褪色算法,并在电子表格中计算RGB值。我想将我的3个R、G和B值放在列中,并让第4列显示颜色。不使用公式,应用程序脚本上的Google apps script 可以用公式设置google电子表格单元格的背景色吗?,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我知道条件格式,但我希望能够使用公式指定颜色。我正在设计一些褪色算法,并在电子表格中计算RGB值。我想将我的3个R、G和B值放在列中,并让第4列显示颜色。不使用公式,应用程序脚本上的onEdit可以做到这一点,但效率不高: function componentToHex(c) { var hex = c.toString(16); return hex.length == 1 ? "0" + hex : hex; } function rgbToHex(r, g, b) {
onEdit
可以做到这一点,但效率不高:
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(r, g, b) {
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
function onEdit(){
var RGBVals = SpreadsheetApp.getActiveSheet().getDataRange().getValues(),
backSet = [],
currLin;
for( lin in RGBVals ){
currLin = RGBVals[ lin ];
backSet.push([rgbToHex(currLin[0], currLin[1], currLin[2])]);
}
SpreadsheetApp.getActiveSheet().getRange(1, 4, backSet.length).setBackgrounds(backSet);
}
注意:A、B、C列中的R、G、B从第1行开始。如果不在整个范围内循环,而是使用传递给它的事件来隔离更改的行,则
onEdit()
的效率将大大提高。