Office.js:我可以设置二维数组中一系列单元格的填充吗?

时间:2017-06-07 21:56:53

标签: office-js excel-2016

到目前为止,使用office.js,我已经习惯了这种模式,您可以在其中为相应的excel范围分配数据数组:

 range.values = [["Eurasia", "29.96", "0.25", "15-Feb" ]];
 range.numberFormat = [[null, null, null, "m/d/yyyy;@"]];

然而,我试图在不同的单元格中使用不同颜色更改一系列单元格的背景颜色,并且我已经有一个与每个单元格相关的二维颜色数组。 < / p>

据我所知,看起来您可以通过逐个循环遍历每个单元格来分配填充颜色:

    var rowCount = selectionRange.values.length;
    var columnCount = selectionRange.values[0].length;
    for (var row = 0; row < rowCount; row++) {
        for (var column = 0; column < columnCount; column ++) {
            if (selectionRange.values[row][column] > 50) {
                selectionRange.getCell(row, column)
                    .format.fill.color = "yellow";
            }
        }
    }

或者通过将单一颜色分配到整个范围:

range.format.fill.color = "yellow";  



但我正在寻找类似的内容:

range.fill = [["yellow", "red", "red", "white"]];

似乎有一个类似于你如何设置值或数字格式的选项,但我还没有找到它。

这是否存在,还是我需要逐个设置?

1 个答案:

答案 0 :(得分:1)

对于格式化属性(基本上是非数组),您必须一次设置一个单元格。

我们在积压工作中有一个项目允许类似数组的读取和设置这些属性,但我们还没有。我会再把它提交给团队,但它不在队列的最前沿。

根据数组的大小(实质上,您在一个Excel.run调用中创建的范围),可能会有一些性能影响。如果你遇到问题,请告诉我,我可以提供更多信息(我建议为它打开一个单独的帖子)。

顺便说一句,有一些有趣的示例,一次设置多种格式,在Script Lab中显示为摘要。

Script Lab