在C#

时间:2018-07-18 16:19:49

标签: c# excel interopservices

我正在尝试将色标应用于Excel范围。我下面的代码片段几乎可以满足我的要求,将最高的单元格设置为红色,最低的单元格设置为黑色,并缩放介于两者之间的单元格,但是我想使其根据单元格的值应用色标,值为0的单元格为黑色,值为255的单元格为红色。使用当前代码,只有在最高的单元格正好为255而最低的单元格正好为0时,才会发生这种情况。任何其他最大和最小单元格值都会影响色标。如何应用色标来引用这些静态值? 任何帮助表示赞赏!

Excel.ColorScale cfColorScale = (Excel.ColorScale)(xlWorkSheet.get_Range("1:1").FormatConditions.AddColorScale(2));
        cfColorScale.ColorScaleCriteria[1].Type = Excel.XlConditionValueTypes.xlConditionValueLowestValue;
        cfColorScale.ColorScaleCriteria[1].FormatColor.Color = Color.FromArgb(0, 0, 0); // Black

        cfColorScale.ColorScaleCriteria[2].Type = Excel.XlConditionValueTypes.xlConditionValueHighestValue;
        cfColorScale.ColorScaleCriteria[2].FormatColor.Color = Color.FromArgb(255,0,0); //red

1 个答案:

答案 0 :(得分:0)

除非我误解了您,否则我认为可以通过将值的范围从所选范围的最小值和最大值更改来实现。

y = [(i, neighbors[i][j]) for i, j in zip(q, range(len(neighbors[i])))]

当然,除非您期望这些值会发生变化并且希望它自动调整-如果是这种情况,那么您将需要使用工作表更改事件来进行检查。