自Excel 97之后,Excel具备了条件格式功能。所谓条件格式是指当指定条件为真时,Excel自动应用于单元格的格式,例如,单元格填充背景色或更改字体颜色。本文将介绍如何使用Spire.XLS在Excel中创建条件格式。
通过单元格规则和自定义公式设置条件格式
现有如下学生成绩表,需要找出成绩不及格的同学以及不及格的科目。我们可以查找所有数值低于60的单元格,进行字体加粗,然后通过自定义公式高亮数值低于60的单元格所在的行。这样就能很容易地发现谁有几门成绩不及格。
C#
//实例化workbook对象并加载文档
Workbook wb = new Workbook();
wb.LoadFromFile(@"C:\Users\Administrator\Desktop\成绩统计表.xlsx");
//获取第一个工作表
Worksheet sheet = wb.Worksheets[0];
//获取数据范围
CellRange range = sheet.Range["A3:H14"];
//在所选范围添加条件格式1
ConditionalFormatWrapper format1 = range.ConditionalFormats.AddCondition();
//条件格式1的类型为基于各自值设置单元格格式
format1.FormatType = ConditionalFormatType.CellValue;
//将数值低于60的单元格进行字体加粗
format1.FirstFormula = "60";
format1.Operator = ComparisonOperatorType.Less;
format1.IsBold = true;
//添加条件格式2
ConditionalFormatWrapper format2 = range.ConditionalFormats.AddCondition();
//条件格式2的类型为自定义公式
format2.FormatType = ConditionalFormatType.Formula;
//自定义公式将低于60的单元格所在的行填充背景色
format2.FirstFormula = "=OR($C3<60,$D3<60,$E3<60,$F3<60,$G3<60,$H3<60)";
format2.BackColor = Color.Gray;
//保存文档
wb.SaveToFile("条件格式.xlsx",ExcelVersion.Version2013);
VB.NET
'实例化workbook对象并加载文档
Dim wb As New Workbook()
wb.LoadFromFile("C:\Users\Administrator\Desktop\成绩统计表.xlsx")
'获取第一个工作表
Dim sheet As Worksheet = wb.Worksheets(0)
'获取数据范围
Dim range As CellRange = sheet.Range("A3:H14")
'在所选范围添加条件格式1
Dim format1 As ConditionalFormatWrapper = range.ConditionalFormats.AddCondition()
'条件格式1的类型为基于各自值设置单元格格式
format1.FormatType = ConditionalFormatType.CellValue
'将数值低于60的单元格进行字体加粗
format1.FirstFormula = "60"
format1.[Operator] = ComparisonOperatorType.Less
format1.IsBold = True
'添加条件格式2
Dim format2 As ConditionalFormatWrapper = range.ConditionalFormats.AddCondition()
'条件格式2的类型为自定义公式
format2.FormatType = ConditionalFormatType.Formula
'自定义公式将低于60的单元格所在的行填充背景色
format2.FirstFormula = "=OR($C3<60,$D3<60,$E3<60,$F3<60,$G3<60,$H3<60)"
format2.BackColor = Color.Gray
'保存文档
wb.SaveToFile("条件格式.xlsx", ExcelVersion.Version2013)
应用数据条,色阶,图标集格式
例如在以下工作表中,我们可以在B列的单元格中添加图标集,让亏盈及幅度得到直观的体现。
C#
//实例化workbook对象并加载文档
Workbook wb = new Workbook();
wb.LoadFromFile(@"C:\Users\Administrator\Desktop\盈亏记录表.xlsx");
//获取第一个工作表
Worksheet sheet = wb.Worksheets[0];
//获取数据范围
CellRange range = sheet.Range["B2:B11"];
//添加条件格式
ConditionalFormatWrapper format = range.ConditionalFormats.AddCondition();
//将条件格式类型设为图标集
format.FormatType = ConditionalFormatType.IconSet;
//选择五种箭头图标
format.IconSet.IconSetType = IconSetType.FiveArrows;
//保存文档
wb.SaveToFile("数据条格式.xlsx", ExcelVersion.Version2013);
VB.NET
'实例化workbook对象并加载文档
Dim wb As New Workbook()
wb.LoadFromFile("C:\Users\Administrator\Desktop\盈亏记录表.xlsx")
'获取第一个工作表
Dim sheet As Worksheet = wb.Worksheets(0)
'获取数据范围
Dim range As CellRange = sheet.Range("B2:B11")
'添加条件格式
Dim format As ConditionalFormatWrapper = range.ConditionalFormats.AddCondition()
'将条件格式类型设为图标集
format.FormatType = ConditionalFormatType.IconSet
'选择五种箭头图标
format.IconSet.IconSetType = IconSetType.FiveArrows
'保存文档
wb.SaveToFile("数据条格式.xlsx", ExcelVersion.Version2013)