google spreadsheet - Set colors at once on a range of cells -
setting colors of cells 1 1 extremely slow. advised assigning array range. read , there refered following sample. can't work doesn't me.
var cell = sheet.getrange('a1'); var colors = new array(100); (var y = 0; y < 100; y++) { xcoord = xmin; colors[y] = new array(100); (var x = 0; x < 100; x++) { colors[y][x] = getcolorfromcoordinates(xcoord, ycoord); xcoord += xincrement; } ycoord -= yincrement; } sheet.getrange(1, 1, 100, 100).setbackgroundcolors(colors); my piece of code following , ends message (error): cannot convert array object[[]], pointing @ last line.
function tabelmarkeren() { var selection = spreadsheetapp.getactivespreadsheet().getrangebyname("proef") // 6 3; var colors = []; (var row = 1; row <= selection.getnumrows(); ++row) { var cell = selection.getcell(row, 1); if (cell.isblank()) { colors[row, 1] = "#86d8b6"; }// if else { colors[row, 1] = "c4c4a4"; }// else colors[row, 2] = "blue"; colors[row, 3] = "green"; }// spreadsheetapp.getactivespreadsheet(). getrangebyname("proef").setbackgrounds(colors); } when use browser.msgbox . . show me values array. ok. setbackgroundcolors wants object , not array.
the setbackgrounds expect value in [][] , passing values in []. refer below code.
function tabelmarkeren() { var selection = spreadsheetapp.getactivespreadsheet().getrangebyname("proef") // 6 3; var finalcolors = []; (var row = 1; row <= selection.getnumrows(); ++row) { var colors = []; var cell = selection.getcell(row, 1); if (cell.isblank()) { colors[row, 1] = "#86d8b6"; } // if else { colors[row, 1] = "c4c4a4"; } // else colors[row, 2] = "blue"; colors[row, 3] = "green"; finalcolors.push(colors) } // logger.log(colors) spreadsheetapp.getactivespreadsheet().getrangebyname("proef").setbackgrounds(finalcolors); }
Comments
Post a Comment