#google-apps-script
#google-apps-script
Вопрос:
Я использовал приведенный ниже код и пытался изменить его цвет на этот код, который является # 1b2020 и хочет выделить полную строку, в которой содержится слово «Травма» в строке «F».
Но он просто выделяет ячейку из столбца «A» вместо выделения полной строки до «A1: L».
И, пожалуйста, также поделитесь тем, как изменить цвет шрифта при применении условного форматирования.
Ваша помощь будет оценена по достоинству.
function Formatting() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var LRows = sheet.getLastRow();
var rangeToHighlight = sheet.getRange("A1:L" LRows);
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied('=INDIRECT("R[0]C[5]", FALSE)="Trauma"')
.setBackground("#1b1919")
.setFontColor("white") // or use hex equivalent #ffffff
.setRanges([rangeToHighlight])
.build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
}
Ответ №1:
function Formatting() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Sheet1');
const rg=sh.getRange(1,6,sh.getLastRow());//getting columnF only
const vA=rg.getValues();
const lc=sh.getLastColumn();
vA.forEach(function(r,i){
if(r[0]=='Trauma') {
sh.getRange(i 1,1,1,lc).setBackground('#1b2020').setFontColor('#ffffff');//they both return a range so chaining is available
}
});
}
Комментарии:
1. Я не знал, что цепочка возможна. 1 за эту новую информацию
Ответ №2:
Мы можем использовать setBackground
и setFontColor
вместо использования условного форматирования.
function Formatting() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var data = sheet.getDataRange().getValues();
data.forEach(function (row, i){
if(row[5] == "Trauma") {
// L = 12th column
sheet.getRange(i 1, 1, 1, 12).setBackground("#1b1919");
sheet.getRange(i 1, 1, 1, 12).setFontColor("#ffffff");
}
});
}
Комментарии:
1. Я не понимал, что цвет шрифта должен быть белым, пока не прочитал ваш ответ. 1 за это