C# Excel条件设置

C# Excel条件设置,c#,excel,C#,Excel,我正在尝试设置一些条件设置值,但它们似乎不起作用。 当我查看excel文档时,它们是默认的。 绿色=0.2 黄色=0.1 它们显示为 绿色0.8 黄色0.6 private static void setIcon(Excel.Worksheet excelWorksheet, string cell) { try { Excel.IconSetCondition cfIconSet = (Excel.IconSetCondition)excelWorksheet

我正在尝试设置一些条件设置值,但它们似乎不起作用。 当我查看excel文档时,它们是默认的。
绿色=0.2
黄色=0.1

它们显示为
绿色0.8
黄色0.6

private static void setIcon(Excel.Worksheet excelWorksheet, string cell)
{
    try
    {
        Excel.IconSetCondition cfIconSet = (Excel.IconSetCondition)excelWorksheet.Range[cell, cell].FormatConditions.AddIconSetCondition();
        cfIconSet.IconCriteria[1].Icon = Excel.XlIcon.xlIconRedTrafficLight;

        cfIconSet.IconCriteria[2].Type = Excel.XlConditionValueTypes.xlConditionValueNumber;
        cfIconSet.IconCriteria[2].Icon = Excel.XlIcon.xlIconYellowTrafficLight;
        cfIconSet.IconCriteria[2].Value = Convert.ToDouble(yellow);
        cfIconSet.IconCriteria[2].Operator = (int)(Excel.XlFormatConditionOperator.xlGreaterEqual);

        cfIconSet.IconCriteria[3].Type = Excel.XlConditionValueTypes.xlConditionValueNumber;
        cfIconSet.IconCriteria[3].Value = Convert.ToDouble(green);
        cfIconSet.IconCriteria[3].Icon = Excel.XlIcon.xlIconGreenTrafficLight;
        cfIconSet.IconCriteria[3].Operator = (int)(Excel.XlFormatConditionOperator.xlGreaterEqual);
    }
    catch (Exception ex)
    {
        throw new ArgumentException(ex.Message);
    }
}

我使用了以下有效的方法

var c = (Excel.IconSetCondition)excelWorksheet.get_Range(cell).FormatConditions.AddIconSetCondition();
c.SetFirstPriority();
c.ShowIconOnly = false;
c.IconSet = book.IconSets[Excel.XlIconSet.xl3TrafficLights2];
var yellowIcon = c.IconCriteria[2];
yellowIcon.Type = Excel.XlConditionValueTypes.xlConditionValueNumber;
yellowIcon.Value = Convert.ToDouble(yellow);
yellowIcon.Operator = (int)Excel.XlFormatConditionOperator.xlGreaterEqual;

var greenIcon = c.IconCriteria[3];
greenIcon.Type = Excel.XlConditionValueTypes.xlConditionValueNumber;
greenIcon.Value = Convert.ToDouble(green);
greenIcon.Operator = (int)Excel.XlFormatConditionOperator.xlGreaterEqual;

可能您需要调用
excelWorksheet.Save
完成后?我将工作簿保存在代码中的其他位置。您正在编辑
cdIconSet
,它是从
AddIconSetCondition()返回的
method,您确定不需要将此IconSet放在工作表的某个位置吗?很抱歉,应该说我正在使用excel 2010 interop