首页 > 解决方案 > 不推荐使用 rowRange.setBackgroundColor

问题描述

对于一个项目,我使用一个函数来设置工作表的背景颜色。

此功能有效,但 Google 通知“setBackgroundColor”已弃用。

function bg() {
  var ss = SpreadsheetApp.getActive();
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  for (var i = range.getRow(); i < range.getLastRow(); i++) {
    rowRange = range.offset(i, 0, 1);
    status = rowRange.offset(0, 0).getValue();
    if (status !=0) {
      rowRange.setBackgroundColor("#000000");
    }
  }

我正在尝试使用“setBackgrounds(colors)”,但它不起作用。

function new_bg() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheets()[0];
  var range = sheet.getDataRange();
  var value = range.getValues();
  for(var i = 2; i <= value; i++){
    var colors = ["#000000"];
    range.setBackgrounds(colors);
  }
}

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


  1. 值是二维数组,为什么要在它上面运行循环?
  2. 颜色应该是一个二维数组。因为它将在二维范围内设置颜色。

你应该尝试这样的事情:

function new_bg() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheets()[0];
  var range = sheet.getDataRange();
  var value = range.getValues();
  var colors = [], temp = [];
  for (var i = 2; i <= value.length; i++) {
    temp = [];
    for (var j = 0; j < value[i-1].length; j++) {
      temp.push("#000000");
    }
    colors.push(temp);
  }
  range.setBackgrounds(colors);
}

推荐阅读