以编程方式创建Excel 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}}
答案 0 :(得分:0)
好吧,我终于找到了答案,这很棘手...... Scope类型引发异常,因为范围必须位于数据列中,颜色问题也归因于minpoint和maxpoint属性 使用方法:
dataBar.MinPoint.Modify(Excel.XlConditionValueTypes.xlConditionValueAutomaticMin);
dataBar.MaxPoint.Modify(Excel.XlConditionValueTypes.xlConditionValueAutomaticMax);
dataBar.ScopeType = Excel.XlPivotConditionScope.xlDataFieldScope;