The following code will format variable rows in a Google Sheets table:
function lastLine() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:A").getValues(); return range.filter(String).length; } function setConditionalFormat() { var ss = SpreadsheetApp.getActiveSpreadsheet() var sheet = ss.getSheets()[0] var myRange = { 'sheetId': sheet.getSheetId(), 'startRowIndex': 1, 'endRowIndex': lastLine(), 'startColumnIndex': 0, 'endColumnIndex': 8 } var format_req = { 'requests': [ {'addConditionalFormatRule': { 'index': 0, 'rule': { 'ranges': [ myRange ], 'booleanRule': { 'format': {'backgroundColor': {'red': 1, 'green': 1, 'blue': 1, 'alpha': 1}}, 'condition': { 'type': 'CUSTOM_FORMULA', 'values': [{'userEnteredValue': '=ISEVEN(ROW())'}] }, }, }, } }, {'addConditionalFormatRule': { 'index': 0, 'rule': { 'ranges': [ myRange ], 'booleanRule': { 'format': {'backgroundColor': {'red': 222/255, 'green': 235/255, 'blue': 246/255, 'alpha': 0.7}}, 'condition': { 'type': 'CUSTOM_FORMULA', 'values': [{'userEnteredValue': '=ISODD(ROW())'}] }, }, }, } } ], 'includeSpreadsheetInResponse': false, } Sheets.Spreadsheets.batchUpdate(JSON.stringify(format_req), ss.getId()) }
source share