(9) 如何用Apache POI操作Excel文件-----应用条件样式(ConditionalFormatting)

原创 2015年06月01日 14:24:52

有的时候,我们可能想根据一些条件,把Excel工作表中的一些数据,根据某个特定的条件,修改一下满足条件的单元格的样式.

其中比较操作符对象ComparisonOperator支持除了BWTWEEN和NOT_BEWTEEN之外的其他的7个操作符。

package org.apache.poi.ss.usermodel;
public final class ComparisonOperator
{
  public static final byte NO_COMPARISON = 0;
  public static final byte BETWEEN = 1;
  public static final byte NOT_BETWEEN = 2;
  public static final byte EQUAL = 3;
  public static final byte NOT_EQUAL = 4;
  public static final byte GT = 5;
  public static final byte LT = 6;
  public static final byte GE = 7;
  public static final byte LE = 8;
  
  public ComparisonOperator() {}
}


示范代码如下:

import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.ComparisonOperator;
import org.apache.poi.ss.usermodel.ConditionalFormattingRule;
import org.apache.poi.ss.usermodel.FontFormatting;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.PatternFormatting;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.SheetConditionalFormatting;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ConditionFormatDemo {

	 public static void main(String[] args) throws Exception {
		   //1. 生成5行9列的数据
	    	XSSFWorkbook wb = new XSSFWorkbook(); 
	    	XSSFSheet sheet = wb.createSheet("Sheet1");
	        XSSFCellStyle style = wb.createCellStyle();
	        for(int i=0;i<5;i++){
	        	Row row = sheet.createRow((short)i);
	        	for(int j=0;j<9;j++){
		        Cell cell = row.createCell((short) j);
		        cell.setCellValue((i+1)*10+(j+1));
		        cell.setCellStyle(style); 
	        	}
	        }
	        //2.设置Condition Format
	        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
	        ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.GT, "50");
	        PatternFormatting fill1 = rule1.createPatternFormatting();
	        fill1.setFillBackgroundColor(IndexedColors.RED.index);
	        fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
	        FontFormatting  fontFormatting=rule1.createFontFormatting();
	        fontFormatting.setFontStyle(true, true);	        
	        CellRangeAddress[] regions = {
	                CellRangeAddress.valueOf("A1:I5")
	        };
            
	        sheetCF.addConditionalFormatting(regions, rule1);
	        // 3.输出Excel文件
	        FileOutputStream fileOut = new FileOutputStream("conditionFormatTest.xlsx");
	        wb.write(fileOut);
	        fileOut.close();

	    }

}

运行后的效果如下,


版权声明:本文为博主原创文章,未经博主允许不得转载。

利用POI将Excel文档转换为Html

excel文档转换为html其实和word转html相类似,优点也很明显。请参考 word转html         public static void convertExcel2Html(Str...
  • jsudavid
  • jsudavid
  • 2013年08月27日 11:58
  • 5599

poi操作excel,复制sheet,复制行,复制单元格

项目中,我们经常使用Poi来操作excel,但是经常碰到一个不方便的地方,不如最简单常用的,在两个excel之间复制sheet,复制行,复制单元格等。 我这里是最近刚做的一个简单封装。不是很好,必须...
  • wutbiao
  • wutbiao
  • 2013年03月20日 14:59
  • 38754

Apache poi 操作 excel 文件压缩包

  • 2017年07月14日 02:46
  • 9.76MB
  • 下载

(1) 如何用Apache POI操作Excel文件-----入门

Apache POI项目的目标就是可以用Java API来创建和维护各种Office文件(MS Word,MS PowerPoint和MS Excel). 本系列文章主要是针对Excel文件的操作。对...
  • chancein007
  • chancein007
  • 2015年05月28日 23:01
  • 1430

Apache POI工具对excel文件操作的简单使用

今天帮一个同学,处理txt文件数据,最后把数据持久化到excel表格中,其中用到了开源工具包POI,稍微学习了下,mark。。。 1、首先是一个创建xls文件的demo package test;...
  • gamakui
  • gamakui
  • 2015年04月24日 23:05
  • 259

java使用Apache POI操作excel文件

官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XS...
  • meiru8
  • meiru8
  • 2014年08月27日 14:36
  • 523

(3) 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?

有的时候,我们需要通过操作Apache POI,在生成Cell数据的同时,能对其生成的Cell,加上注解(comments)。那么如何对其来加注解呢?...
  • chancein007
  • chancein007
  • 2015年05月29日 17:06
  • 2683

Apache POI 操作Excel文件

Apache POI 操作Excel文件:POI简介:Apache POI[1] 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的...
  • qq_28268507
  • qq_28268507
  • 2017年06月14日 08:36
  • 882

(2) 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表。那么在这个章节里面,我将会给大家演示一下,如...
  • chancein007
  • chancein007
  • 2015年05月28日 23:15
  • 6270

(6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug

如果POI-3.10往一个工作表(sheet)里面插入数据的话,需要注意了,其有一个不太被容易发现的bug。 被插入的工作表(sheet)里面的单元格没有包含任何的注解(comment)的时候,插入一...
  • chancein007
  • chancein007
  • 2015年05月29日 22:35
  • 1358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(9) 如何用Apache POI操作Excel文件-----应用条件样式(ConditionalFormatting)
举报原因:
原因补充:

(最多只允许输入30个字)