POI设置EXCEL单元格的"条件格式"
来源:互联网 发布:淘宝点评网 编辑:程序博客网 时间:2024/04/28 22:17
这篇博客主要是说明如何通过POI设置excle文档中单元格的条件格式。
POI版本 : poi-3.5-FINAL
涉及到的主要类:
org.apache.poi.hssf.usermodel.HSSFSheet;
org.apache.poi.hssf.usermodel.HSSFConditionalFormattingRule;
org.apache.poi.hssf.usermodel.HSSFPatternFormatting;
org.apache.poi.hssf.usermodel.HSSFSheetConditionalFormatting;
辅助类:
org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator;
相关代码1:
HSSFSheetConditionalFormatting scf = sheet.getSheetConditionalFormatting();//设置"条件格式"的规则,本例选择的条件类型是:"单元格数据"//如果当前单元格的数据等于R,则显示红色HSSFConditionalFormattingRule cf_R_rule = scf.createConditionalFormattingRule(ComparisonOperator.EQUAL, "\"R\"", null);HSSFPatternFormatting cf_R = cf_R_rule.createPatternFormatting();cf_R.setFillBackgroundColor(HSSFColor.RED.index);//如果当前单元格的数据等于G,则显示绿色HSSFConditionalFormattingRule cf_G_rule = scf.createConditionalFormattingRule(ComparisonOperator.EQUAL, "\"G\"", null);HSSFPatternFormatting cf_G = cf_G_rule.createPatternFormatting();cf_G.setFillBackgroundColor(HSSFColor.GREEN.index);HSSFConditionalFormattingRule[] cfRules = {cf_R_rule, cf_G_rule};//条件格式应用的单元格范围CellRangeAddress[] regions = {new CellRangeAddress(5, 5, 7, 9)};scf.addConditionalFormatting(regions, cfRules);
相关代码2:
HSSFSheetConditionalFormatting scf = sheet.getSheetConditionalFormatting();//设置"条件格式"的规则,本例选择的条件类型是:"公式"//如果A1到A5单元格中有一个为空,那么对应单元格就显示红色HSSFConditionalFormattingRule cf_rule= scf.createConditionalFormattingRule("COUNTBLANK(A1:A5)>0");HSSFPatternFormatting cf = cf_rule.createPatternFormatting();cf.setFillBackgroundColor(HSSFColor.RED.index);HSSFConditionalFormattingRule[] cfRules = {cf_rule};//条件格式应用的单元格范围CellRangeAddress[] regions = {CellRangeAddress.valueOf("B1:B1")};scf.addConditionalFormatting(regions, cfRules);
说明:
1. HSSFSheetConditionalFormatting.createConditionalFormattingRule()
提供了两种方式来生成条件格式:“单元格数据”,可以使用 ComparisonOperator.BETWEEN,NOT_BETWEEN,EQUAL,NOT_EQUAL,GT,LT,GE,LE 多种比较运算符;
"公式",只需要将公式的以字符串的形式传给该方法,就可以生效(如果公式中有 " , 记得使用转义字符 \" )
2. CellRangeAddress[] regions = {CellRangeAddress.valueOf("B1:B1")};
CellRangeAddress[] regions = {new CellRangeAddress(5, 5, 7, 9)};
用来指定"条件格式"作用的范围,如上面的代码,可以用两种不同的方式来指定作用域。
缺点:
导出的excle中,可以看到条件格式的效果,但是,如果你修改其他的单元格,而没有修改被设置的单元格中的内容,那么被设置的单元格的效果并不能立即作出反应;只有当你修改了被设置的单元格中的内容时,才会按照设置的条件来生效。(关于这个缺点,如果大家有更好的解决办法,希望可以提出来,大家学习交流下。)
- POI设置EXCEL单元格的"条件格式"
- POI设置Excel单元格格式
- POI 设置EXCEL单元格格式
- POI对Excel单元格的格式的设置参数
- POI对Excel单元格的格式的设置参数
- poi操作excel导出单元格设置不同格式的方法
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- java设置Excel单元格格式 POI
- POI中设置Excel单元格格式
- 使用POI设置EXCEL单元格格式
- POI中设置Excel单元格格式
- POI 设置Excel单元格为文本格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- 命运
- C++中 string元素是否定长
- sql中类似switch case语句的用法
- sql 08相关的资料
- 求4个整数中的最大值
- POI设置EXCEL单元格的"条件格式"
- 打开word 提示:无法初始化visul basic环境
- 做博文感受
- ubuntu环境下的常用命令
- 第七届全国信息技术应用水平大赛模拟题 JAVA程序设计
- 自用Git提交后自动发送邮件的脚本
- 异常:数据库没有有效所有者,因此无法安装数据库关系图支持对象
- Java程序员面试中的多线程问题
- ExportServlet