Java 设置Excel条件格式

在Excel中,应用条件格式功能可以在很大程度上改进表格的设计和可读性,用户可以指定单个或者多个单元格区域应用一种或者多种条件格式。本篇文章,将通过Java程序示例介绍条件格式的设置方法,设置条件格式时,因不同设置需要,本文分别从以下示例要点来介绍:
示例1:

  1. 应用条件格式用于高亮重复、唯一数值
  2. 应用条件格式用于高亮峰值(最高值、最低值)
  3. 应用条件格式用于高亮低于或高于平均值的数值
    示例2:
  4. 应用单元格值类型的条件格式
  5. 应用公式类型的条件格式
  6. 应用数据条类型的条件格式
    示例3:
  7. 删除条件格式

使用工具:Free Spire.XLS for Java (免费版)
Jar获取及导入:官网下载jar包,并解压将lib文件夹下的jar导入Java程序(或者通过maven下载导入到maven项目程序)。如下导入效果:

Java示例1——应用条件格式高亮重复值、唯一值、峰值、高于或低于平均值

import com.spire.xls.*;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;
import com.spire.xls.core.spreadsheet.conditionalformatting.TimePeriodType;

import java.awt.*;

public class AddConditionalFormat {
    public static void main(String[] args) {
        //创建实例,加载测试文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //获取第一个工作表
        Worksheet sheet = wb.getWorksheets().get(0);

        //添加条件格式1并指定数据范围
        XlsConditionalFormats format1 = sheet.getConditionalFormats().add();
        format1.addRange(sheet.getCellRange("A2:A12"));
        //高亮低于平均数值的单元格
        IConditionalFormat cf1 = format1.addAverageCondition(AverageType.Below);
        cf1.setBackColor(new Color(230,230,250));
        //高亮高于平均数值的单元格
        IConditionalFormat cf2 = format1.addAverageCondition(AverageType.Above);
        cf2.setBackColor(new Color(224,255,255));

        //添加条件格式2并指定数据范围
        XlsConditionalFormats format2 = sheet.getConditionalFormats().add();
        format2.addRange(sheet.getCellRange("B2:B12"));
        //高亮最高值
        IConditionalFormat cf3 = format2.addTopBottomCondition(TopBottomType.Top, 1);
        cf3.setBackColor(new Color(144,238,144));
        //高亮最低值单元格
        IConditionalFormat cf4 = format2.addTopBottomCondition(TopBottomType.Bottom, 1);
        cf4.setBackColor(new Color(221,160,221));

        //添加条件格式3并指定数据范围
        XlsConditionalFormats format3 = sheet.getConditionalFormats().add();
        format3.addRange(sheet.getCellRange("C2:C12"));
        //高亮唯一值的单元格
        IConditionalFormat cf5 = format3.addDuplicateValuesCondition();
        cf5.setFormatType(ConditionalFormatType.UniqueValues);
        cf5.setBackColor(new Color(0,255,255));

        //添加条件格式4并指定数据范围
        XlsConditionalFormats format4 = sheet.getConditionalFormats().add();
        format4.addRange(sheet.getCellRange("D2:D12"));
        //高亮重复数值的单元格
        IConditionalFormat cf6 = format4.addDuplicateValuesCondition();
        cf6.setFormatType(ConditionalFormatType.DuplicateValues);
        cf6.setBackColor(new Color(255,228,196));

        //添加条件格式5并指定数据范围
        XlsConditionalFormats format5 = sheet.getConditionalFormats().add();
        format5.addRange(sheet.getCellRange("E2:E12"));
        //高亮本周日期的单元格
        IConditionalFormat cf7 = format5.addTimePeriodCondition(TimePeriodType.ThisWeek);
        cf7.setBackColor(new Color(255,165,0));

        //保存文档
        wb.saveToFile("AddConditionalFormat.xlsx", ExcelVersion.Version2013);
        wb.dispose();
    }
}

条件格式应用效果:

Java示例2——应用单元格值、公式及数据条类型的条件格式

import com.spire.xls.*;

import java.awt.*;

public class AddConditionalFormat {
    public static void main(String[] args) {
        //创建实例,加载测试文档
        Workbook wb = new Workbook();
        wb.loadFromFile("sample.xlsx");

        //获取第一个工作表
        Worksheet sheet = wb.getWorksheets().get(0);

        //获取应用条件格式的数据范围
        CellRange range = sheet.getCellRange("A2:H27");

        //添加条件格式1
        ConditionalFormatWrapper format1 = range.getConditionalFormats().addCondition();
        //条件格式类型1基于单元格值
        format1.setFormatType(ConditionalFormatType.CellValue);
        //将数值在60到90之间的单元格进行字体加粗,并设置字体颜色为橙色
        format1.setFirstFormula("90");
        format1.setSecondFormula("100");
        format1.setOperator(ComparisonOperatorType.Between);
        format1.setFontColor(new Color(30,144,255));
        //format1.setBackColor(Color.orange);

        //添加条件格式2
        ConditionalFormatWrapper format2 = range.getConditionalFormats().addCondition();
        format2.setFormatType(ConditionalFormatType.CellValue);
        format2.setFirstFormula("60");
        format2.setOperator(ComparisonOperatorType.Less);
        format2.setFontColor(Color.red);
        //format2.setBackColor(Color.red);
        format2.isBold();
        //添加边框格式(边框颜色、边框类型)到条件格式2
        format2.setLeftBorderColor(Color.red);
        format2.setRightBorderColor(new Color(0,0,139));
        format2.setTopBorderColor(new Color(123,104,238));
        format2.setBottomBorderColor(new Color(50,205,50));
        format2.setLeftBorderStyle(LineStyleType.Medium);
        format2.setRightBorderStyle(LineStyleType.Thick);
        format2.setTopBorderStyle(LineStyleType.Double);
        format2.setBottomBorderStyle(LineStyleType.Double);

        //条件格式3的类型为公式
        ConditionalFormatWrapper format3 = range.getConditionalFormats().addCondition();
        format3.setFormatType(ConditionalFormatType.Formula);

        //自定义公式将低于60的单元格所在的行填充背景色
        format3.setFirstFormula("=OR($C2<60,$D2<60,$E2<60,$F2<60,$G2<60,$H2<60)");
        format3.setBackColor(Color.lightGray);

        //获取第二个工作表
        Worksheet sheet2 = wb.getWorksheets().get(1);

        //获取应用条件格式的数据范围
        CellRange range2 = sheet2.getCellRange("B2:D7");

        //添加条件类型4为data bars
        ConditionalFormatWrapper format4 = range2.getConditionalFormats().addCondition();
        format4.setFormatType(ConditionalFormatType.DataBar);
        format4.getDataBar().setBarColor(new Color(152,251,152));

        //保存文档
        wb.saveToFile("AddConditionalFormat2.xlsx", ExcelVersion.Version2013);
        wb.dispose();
    }
}

条件格式应用效果:


Java示例3——删除条件格式
(这里测试文档以示例1中生成的文档为例)

import com.spire.xls.*;

public class RemoveConditionalFormat {
    public static void main(String[] args) {
        Workbook wb = new Workbook();
        wb.loadFromFile("AddConditionalFormat.xlsx");

        //获取第一个工作表
        Worksheet sheet = wb.getWorksheets().get(0);

        //删除指定单元格范围中的条件格式
        sheet.getCellRange("A5:H5").getConditionalFormats().removeAt(3);

        //保存并打开文档
        wb.saveToFile("RemoveConditionalFormat.xlsx", ExcelVersion.Version2010);
        wb.dispose();
    }
}

条件格式删除效果:

(完)

原文地址:https://blog.51cto.com/eiceblue/2480040

时间: 2024-07-30 20:54:51

Java 设置Excel条件格式的相关文章

Java 设置Excel自适应行高、列宽

在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定列宽,缩小数据字体大小适应列宽 本文将通过java程序来介绍具体的自适应设置方法.   工具:Free Spire.XLS for Java (免费版) 注:可通过官网下载包,并解压将lib文件夹下的jar文件导入java程序:或者通过maven仓库下载并导入. 参考如下导入效果: Java 代码示

Java 为 Excel 中的行设置交替背景色

在制作Excel表格时,通过将数据表中上下相邻的两行用不同的背景色填充,可以使各行的数据看起来更清楚,避免看错行,同时也能增加Excel表格的美观度.本文将介绍如何在Java程序中为 Excel 奇数行和偶数行设置交替背景色. 使用工具:Free Spire.XLS for Java (免费版) Jar文件导入方法 方法一: 下载最新的Free Spire.XLS for Java包并解压缩,然后从lib文件夹下,将Spire.Xls.jar包导入到你的Java应用程序中.(导入成功后如下图所示

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

Excel小技巧——条件格式标记者某个单元格/整行

这里我主要使用了wps的Excel跟office2003的Excel做测试 一.标注某个单元格(首先选中需要标注的数据源) 使用wps 1.wps本身自带的突显功能 2.使用格式->条件格式 如果是数字可以直接选择"单元格数值"或者使用公式如下图显示标记>50的单元格       以及匹配某种模式 使用office的Excel方式如使用wps中2使用 二.满足某种条件标记整行,使用格式->条件格式->公式   总结:我们可以采用=COUNTIF(,)的模式,标记

在c#中设置Excel格式

生成excel的时候有时候需要设置单元格的一些属性,可以参考一下: 1 range.NumberFormatLocal = "@"; //设置单元格格式为文本 2 ange.get_Range("B1","B"+dataGridView2.RowCount+1).NumberFormat = "yyyy-m-d hh:mm:ss"; //时间格式的设置 3 range = (Range)worksheet.get_Range(

Java处理Excel中的日期格式

Java处理Excel中的日期格式 2011-12-23 17:34:03|  分类: java |举报 |字号 订阅 下载LOFTER 我的照片书  | 在Excel中的日期格式,其数值为距离1900年1月1日的天数,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理.正确的处理方法是先判断单元格的类型是否则NUMERIC

Eclipse中java文件头注释格式设置

Eclipse中java文件头注释格式设置 Eclipse中java文件头注释格式设置 windows->preferences->java->Code Templates->comments->Type->edit Eclipse注释规范模版总结 新建类文件 /** * @ClassName:     ${file_name} * @Description:   ${todo}(用一句话描述该文件做什么) * * @author          ${user} * 

POI中设置Excel单元格格式

POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = wb.createCellStyle(); 一.设置背景色: setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.setFillPattern

.Net的Excel 导出 格式设置

添加引用:Microsoft   Excel   11.0   Object   Library ; 添加:using Microsoft.Office.Interop.Excel; 一.打开Excel文件============================ Microsoft.Office.Interop.Excel.Application excel1 = new Microsoft.Office.Interop.Excel.Application(); Workbook workboo