【问题标题】:Set Cell Colours in Google Sheet through Script with an Array通过带有数组的脚本在 Google Sheet 中设置单元格颜色
【发布时间】:2020-09-06 01:25:23
【问题描述】:

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

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);

我们可以这样设置颜色吗?

现在我必须获取单个单元格的范围。然后使用 setBackground("#00ff00");

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

我需要优化我的脚本。而不是花5分钟。它可以在几秒钟内完成。通过只对工作表进行几次读写。不是数百个。

我将不胜感激!

【问题讨论】:

    标签: javascript arrays google-apps-script google-docs


    【解决方案1】:

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

    修改脚本:

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
    var range = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn());
    var backgrounds = range.getBackgrounds();
    backgrounds[0][0] = "#FF0000";  // This is red color as a sample.
    range.setBackgrounds(backgrounds);
    
    • 在这种情况下,使用getBackgrounds() 检索的值是二维数组。并且可以使用setBackgrounds() 将其放入单元格中。如此一来,我认为与getBackgroundsetBackground相比,流程成本将能够降低。

    注意:

    • 如果要为范围设置一种颜色,也可以使用以下脚本。

        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 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多