Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 条件格式 >
如何:使用数据栏设置单元格格式

此示例演示如何应用数据条条件格式规则。

  1. 首先,分别指定对应于最短和最长柱的最小和最大阈值。为此,请使用 ConditionalFormattingCollection.CreateValue 方法,该方法创建 ConditionalFormattingValue 对象的实例。此对象提供对阈值及其类型的访问。阈值的类型由 ConditionalFormattingValueType 枚举值之一确定,可以是数字、百分比、公式或百分位数。若要自动将最小(最大)阈值设置为将应用规则的范围中的最小(最高)值,请使用 ConditionalFormattingCollection.CreateValue 方法,并将 ConditionalFormattingValueType.MinMax 枚举值作为参数传递。若要根据单元格与零的距离比较单元格区域中的值,请使用带有 ConditionalFormattingValueType.Auto 参数的 ConditionalFormattingCollection.CreateValue 方法。
  2. 若要应用由 DataBarConditionalFormatting 对象表示的条件格式设置规则,请从 Worksheet.ConditionalFormattings 属性访问条件格式集合,并使用以下参数调用 ConditionalFormattingCollection.AddDataBarConditionalFormatting 方法:应用规则的单元格范围、最小和最大阈值以及条形颜色。
  3. 修改条形图的行为:使用 DataBarConditionalFormatting.BorderColor 属性设置边框颜色,并通过设置 DataBarConditionalFormatting.GradientFill 属性指定是否使用渐变填充类型。如果此属性设置为 false,则应用实体填充类型。若要更改条形的方向,请使用 DataBarConditionalFormatting.Direction 属性。
  4. 如果单元格包含负值,请提供负条形图的设置。从 DataBarConditionalFormatting.NegativeBarColor 属性设置其填充颜色,并使用 DataBarConditionalFormatting.NegativeBarBorderColor 属性指定边框线颜色。
  5. 提供分隔正条和负条的轴的设置。使用 DataBarConditionalFormatting.AxisPosition 属性指定轴位置。从 DataBarConditionalFormatting.AxisColor 属性设置轴颜色。
  6. 通过设置 DataBarConditionalFormatting.ShowValue 属性,指定是显示还是隐藏应用规则的单元格的值。

注意

条件格式不支持透明度。

若要删除 DataBarConditionalFormatting 对象,请使用 ConditionalFormattingCollection.Remove、ConditionalFormattingCollection.RemoveAt 或 ConditionalFormattingCollection.Clear 方法。

Vb.Net
Dim conditionalFormattings As DevExpress.Spreadsheet.ConditionalFormattingCollection = worksheet.ConditionalFormattings
'将最短条对应的值设置为最低值。
Dim lowBound1 As DevExpress.Spreadsheet.ConditionalFormattingValue = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.MinMax)
'将最长条形图对应的值设置为最高值。
Dim highBound1 As DevExpress.Spreadsheet.ConditionalFormattingValue = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.MinMax)
'创建规则,使用数据条比较单元格E2到E15中的值。
Dim cfRule1 As DevExpress.Spreadsheet.DataBarConditionalFormatting = conditionalFormattings.AddDataBarConditionalFormatting(worksheet.Range("$E$2:$E$15"), lowBound1, highBound1, Color.Green)
'将正条形边框颜色设置为绿色。
cfRule1.BorderColor = Color.Green
'将负片条颜色设置为红色。
cfRule1.NegativeBarColor = Color.Red
'将负片边框颜色设置为红色。
cfRule1.NegativeBarBorderColor = Color.Red
'设置轴的位置以在单元格的中间显示轴。
cfRule1.AxisPosition = DevExpress.Spreadsheet.ConditionalFormattingDataBarAxisPosition.Middle
'将轴颜色设置为深蓝色。
cfRule1.AxisColor = Color.DarkBlue

'将最短条形图对应的值设置为0%。
Dim lowBound2 As DevExpress.Spreadsheet.ConditionalFormattingValue = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.Percent, "0")
'将最长条形图对应的值设置为100%。
Dim highBound2 As DevExpress.Spreadsheet.ConditionalFormattingValue = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.Percent, "100")
'创建规则以使用数据条比较单元格G2到G15中的值。
Dim cfRule2 As DevExpress.Spreadsheet.DataBarConditionalFormatting = conditionalFormattings.AddDataBarConditionalFormatting(worksheet.Range("$G$2:$G$15"), lowBound2, highBound2, Color.SkyBlue)
'将数据栏边框颜色设置为天蓝色。
cfRule2.BorderColor = Color.SkyBlue
'指定实体填充类型。
cfRule2.GradientFill = False
'隐藏应用规则的单元格的值。
cfRule2.ShowValue = False

C#
DevExpress.Spreadsheet.ConditionalFormattingCollection conditionalFormattings = worksheet.ConditionalFormattings;
// 将最短条对应的值设置为最低值。
DevExpress.Spreadsheet.ConditionalFormattingValue lowBound1 = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.MinMax);
// 将最长条形图对应的值设置为最高值。
DevExpress.Spreadsheet.ConditionalFormattingValue highBound1 = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.MinMax);
// 创建规则,使用数据条比较单元格E2到E15中的值。
DevExpress.Spreadsheet.DataBarConditionalFormatting cfRule1 = conditionalFormattings.AddDataBarConditionalFormatting(worksheet.Range["$E$2:$E$15"], lowBound1, highBound1, Color.Green);
// 将正条形边框颜色设置为绿色。
cfRule1.BorderColor = Color.Green;
// 将负片条颜色设置为红色。
cfRule1.NegativeBarColor = Color.Red;
// 将负片边框颜色设置为红色。
cfRule1.NegativeBarBorderColor = Color.Red;
// 设置轴的位置以在单元格的中间显示轴。
cfRule1.AxisPosition = DevExpress.Spreadsheet.ConditionalFormattingDataBarAxisPosition.Middle;
// 将轴颜色设置为深蓝色。
cfRule1.AxisColor = Color.DarkBlue;

// 将最短条形图对应的值设置为0%。
DevExpress.Spreadsheet.ConditionalFormattingValue lowBound2 = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.Percent, "0");
// 将最长条形图对应的值设置为100%。
DevExpress.Spreadsheet.ConditionalFormattingValue highBound2 = conditionalFormattings.CreateValue(DevExpress.Spreadsheet.ConditionalFormattingValueType.Percent, "100");
// 创建规则以使用数据条比较单元格G2到G15中的值。
DevExpress.Spreadsheet.DataBarConditionalFormatting cfRule2 = conditionalFormattings.AddDataBarConditionalFormatting(worksheet.Range["$G$2:$G$15"], lowBound2, highBound2, Color.SkyBlue);
// 将数据栏边框颜色设置为天蓝色。
cfRule2.BorderColor = Color.SkyBlue;
// 指定实体填充类型。
cfRule2.GradientFill = false;
// 隐藏应用规则的单元格的值。
cfRule2.ShowValue = false;

下图显示了结果(工作簿在 Microsoft® Excel® 中打开)。数据栏允许您比较“成本趋势”和“标记”列中的值。