我的Excel数据库的某些字段没有着色

时间:2018-03-15 12:36:58

标签: c# excel

以编程方式创建Excel dataBar时出现问题。我有一些没有着色的字段(它们在范围内)。

The databar

我在C#中修改了VBA代码来执行此操作。 VBA代码:

 Excel.Range last = 
         wsMce.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, 
       Type.Missing);
                Excel.Range range = wsMce.get_Range("E6:E" + last.Row);
    var dataBar = range.FormatConditions.AddDatabar();

    dataBar.ShowValue = true;

    //dataBar.MinPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMin;
    //dataBar.SetFirstPriority.MinPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMin;
    //dataBar.SetFirstPriority.MaxPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMax;

    dataBar.BarColor.Color = Color.Orange;
    dataBar.BarColor.TintAndShade = 0;
    dataBar.BarFillType = Excel.XlDataBarFillType.xlDataBarFillSolid;
    dataBar.Direction = Constants.xlContext;
    dataBar.NegativeBarFormat.ColorType = Excel.XlDataBarNegativeColorType.xlDataBarColor;
    dataBar.BarBorder.Type = Excel.XlDataBarBorderType.xlDataBarBorderNone;
    dataBar.AxisPosition = Excel.XlDataBarAxisPosition.xlDataBarAxisAutomatic;
    dataBar.AxisColor.Color = 0;
    dataBar.AxisColor.TintAndShade = 0;
    dataBar.NegativeBarFormat.Color.Color = 255;
    dataBar.NegativeBarFormat.Color.TintAndShade = 0;

改编自C#:

dataBar.SetFirstPriority.MinPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMin;
        dataBar.SetFirstPriority.MaxPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMax;

我没有成功调整MinPoint和MaxPoint属性,也许还有颜色问题的来源。 我试过这个

dataBar.MinPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMin;
        dataBar.MaxPoint.Modify = Excel.XlConditionValueTypes.xlConditionValueAutomaticMax;

这个

dataBar.MinPoint = Excel.XlConditionValueTypes.xlConditionValueAutomaticMin;
        dataBar.MaxPoint = Excel.XlConditionValueTypes.xlConditionValueAutomaticMax;

还有这个

Selection.FormatConditions(1).ScopeType = xlDataFieldScope

但它总是引发异常。

感谢您的帮助! 此致

编辑:我也发现在VBA dataBar.ScopeType = Excel.XlPivotConditionScope.xlDataFieldScope;但我不知道如何在C#中进行调整,我试过但不能正常工作:{{1}}

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了答案,这很棘手...... Scope类型引发异常,因为范围必须位于数据列中,颜色问题也归因于minpoint和maxpoint属性 使用方法:

    dataBar.MinPoint.Modify(Excel.XlConditionValueTypes.xlConditionValueAutomaticMin);    
dataBar.MaxPoint.Modify(Excel.XlConditionValueTypes.xlConditionValueAutomaticMax);
    dataBar.ScopeType = Excel.XlPivotConditionScope.xlDataFieldScope;