如何以编程方式使用Excel COM Interop在数字单元格上应用条件格式?

在MS Excel中,您可以select一系列单元格,并在此范围上应用条件格式。 有没有一种方法,在C#中使用Microsoft.Office.Interop.Excel

给定一个包含数字的单元格的范围,我需要应用Red-Yellow-Green color scale 。 如果没有这个方法,是否有人根据数字的范围和单元格中的数字知道应用颜色的公式?

命令在Excel中

产量

根据Don的评论 ,Microsoft在C#和VB中提供了一个关于如何在Excel中使用Microsoft.Office.Interop.Excel完成条件格式的完整示例:在给定范围内,使用.FormatConditions.AddColorScale()作为颜色或.FormatConditions.AddIconSetCondition()用于图标集条件格式

按照SO的指导原则,如果链接消失了,下面是应用颜色格式的基本要点:

 // Fill cells A1:A10 with sample data. targetSheet.get_Range("A1", paramMissing).set_Value(XlRangeValueDataType.xlRangeValueDefault, 1); targetSheet.get_Range("A2", paramMissing).set_Value(XlRangeValueDataType.xlRangeValueDefault, 2); targetSheet.get_Range("A1:A2", paramMissing).AutoFill(targetSheet.get_Range("A1:A10", paramMissing), XlAutoFillType.xlFillSeries); // Create a two-color ColorScale object for the created sample data // range. cfColorScale = (ColorScale)(targetSheet.get_Range("A1:A10", Type.Missing).FormatConditions.AddColorScale(2)); // Set the minimum threshold to red (0x000000FF) and maximum threshold // to blue (0x00FF0000). Values are in 00BBGGRR format. cfColorScale.ColorScaleCriteria[1].FormatColor.Color = 0x000000FF; cfColorScale.ColorScaleCriteria[2].FormatColor.Color = 0x00FF0000; 

重要说明 :通过COM使用Excel的颜色值要求颜色为00BBGGRR格式(第一个字节始终为零)。 默认情况下,.NET在System.Drawing.Color类中使用AARRGGBB ,因此不能直接使用这些颜色 (作为助记符 ,COM颜色按字母顺序:蓝色,绿色,红色)。

与.NET中的任何Excel互操作一样,您需要引用Excel 12.0对象库并导入Microsoft.Office.Interop.Excel命名空间。