Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过带有数组的脚本在Google工作表中设置单元格颜色_Javascript_Arrays_Google Apps Script_Google Docs - Fatal编程技术网

Javascript 通过带有数组的脚本在Google工作表中设置单元格颜色

Javascript 通过带有数组的脚本在Google工作表中设置单元格颜色,javascript,arrays,google-apps-script,google-docs,Javascript,Arrays,Google Apps Script,Google Docs,将单元格值放入数组非常简单。然后可以编辑所需的任何单个或多个单元格(在数组中)。然后将相同的数组写回工作表。如下图所示 var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export"); var adSpendExprtSheetData = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLast

将单元格值放入数组非常简单。然后可以编辑所需的任何单个或多个单元格(在数组中)。然后将相同的数组写回工作表。如下图所示

var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
var adSpendExprtSheetData = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn()).getValues();
然后可以更改刚刚保存的数组中的值

adSpendExprtSheetData[0][0] = "Changing first cell in array"
然后我们可以使用相同的数组。我们已经更新了。把它传回去写在实际的纸上

adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn()).setValues(adSpendExprtSheetData);
我们可以用这个来设置颜色吗

现在我需要得到单个细胞的范围。然后使用立根台(“00ff00”)

我可以将所有颜色值放入一个数组中吗?使用十六进制值更改单元格的颜色。然后将该数组写回工作表

我需要优化我的脚本。而不是花5分钟。它可以在几秒钟内完成。只需在纸上读写几次。不是几百


我将感谢任何帮助

在您的情况下,如何使用
getBackgrounds()
setBackgrounds(color)
?在这种情况下,您可以像在问题中使用
getValues()
setValues()
一样使用它。当您的脚本被修改时,它将变成如下所示

修改脚本:
  • 在本例中,使用
    getBackgrounds()
    检索的值是二维数组。可以使用
    setBackgrounds()
    将其放入单元格中。这样,我认为流程成本将比
    getBackground
    setBackground
    的流程成本更低
注:
  • 如果要将一种颜色设置为该范围,还可以使用以下脚本

      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
      var range = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn());
      range.setBackground("#FF0000");
    
参考资料:

这正是我想要的!非常感谢。你填补了我的空白:)@Jack Trowbridge谢谢你的回复。我很高兴你的问题解决了。也谢谢你。
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
  var range = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn());
  range.setBackground("#FF0000");