我正在尝试使用C#在Excel中的数据列上设置色阶条件格式。我已经成功添加了其他条件格式规则,但我不明白如何设置这个规则。 这是我添加的条件规则有效:
Excel.Range Rng = workSheet.get_Range("H2", "J" + ExcelRowcount.ToString()); Excel.FormatConditions rule2 = Rng.FormatConditions;
Excel.FormatCondition between = (Excel.FormatCondition)rule2.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlBetween, 0.049999, 0.15, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Excel.Interior interior3 = between.Interior;
interior3.Color = ColorTranslator.ToOle(Color.LavenderBlush);
但是现在我试图让它成为一个色阶规则,我不明白如何格式化长excel函数,这是我到目前为止
Excel.Range range = workSheet.get_Range("L2", "L" +ExcelRowcount.ToString());
Excel.FormatConditions rule3 = range.FormatConditions;
Excel.FormatCondition colorscale = (Excel.FormatCondition)rule3.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlColorScale, Excel.XlFormatConditionType.xlColorScale, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
列中的值是某些计算的结果,并且事先不知道,所以我需要规则从高值到低值。
我无法做到这个Excel.XlFormatConditionType
使用的任何地方的例子,所以如果有人可以帮我解决这个问题真的很棒!
谢谢!
答案 0 :(得分:1)
我遇到了同样的问题,对我来说,下面的工作是设置颜色标记:
MySheet = MyBook.Sheets.get_Item(1);
Excel.ColorScale cfColorScale = (Excel.ColorScale)(MySheet.get_Range("B15", "K34").FormatConditions.AddColorScale(3));
cfColorScale.ColorScaleCriteria[1].Type = Excel.XlConditionValueTypes.xlConditionValueLowestValue;
cfColorScale.ColorScaleCriteria[1].FormatColor.Color = 0x000000FF; // Red
cfColorScale.ColorScaleCriteria[2].Type = Excel.XlConditionValueTypes.xlConditionValuePercentile;
cfColorScale.ColorScaleCriteria[2].Value = 50;
cfColorScale.ColorScaleCriteria[2].FormatColor.Color = 0x00FFCC00; // yellow
cfColorScale.ColorScaleCriteria[3].Type = Excel.XlConditionValueTypes.xlConditionValueHighestValue;
cfColorScale.ColorScaleCriteria[3].FormatColor.Color = 0x0000FF00; // green
我自己对C#很陌生并且还在学习......因此我无法详细阐述解决方案,因为我在google-code上找到的代码中对此进行了调整 - >
希望它有所帮助?