POI 设置单元格背景色

cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置前景填充样式
cellStyle.setFillForegroundColor(HSSFColor.DARK_RED.index);//前景填充色

关于颜色的部分说明:

HSSFWorkbook wb = new HSSFWorkbook();
  ...
  HSSFCellStyle style = wb.createCellStyle();
  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
  style.setFillForegroundColor(HSSFColor.WHITE.index);
  cell.setCellStyle(style); //cell 是 HSSFCell 对象

setFillPattern是设置单元格填充样式,SOLID_FOREGROUND纯色使用前景颜色填充,接着设置前景颜色(setFillForegroundColor)就可以给单元格着色了。setFillForegroundColor()方法的参数是一个short类型,POI使用索引来代表颜色,默认已经有一些颜色了,如:

颜色的索引还必须是 0x08 ~ 0x40 (8 ~ 64) 的数字。

二、接下来,使用自定义颜色
如果不使用POI提供的默认颜色,就需要自定颜色索引:
  HSSFPalette palette = wb.getCustomPalette(); //wb HSSFWorkbook对象
  palette.setColorAtIndex((short) 9, (byte) (color.getRed()), (byte) (color.getGreen()), (byte) (color.getBlue()));
   
  /*设置颜色的索引只能是 8 ~ 64,在此之外的索引无效,也不会报错。以下三种方式都可以设置成功。
  palette.setColorAtIndex((short)9, (byte) (0xff & 251), (byte) (0xff & 161), (byte) (0xff & 161));
  palette.setColorAtIndex((short)10, (byte) (0x66), (byte) (0xcd), (byte) (0xaa));
  palette.setColorAtIndex((short)11, (byte) (255), (byte) (165), (byte) (0));
  */
然后使用颜色,如上例,可以用新的颜色索引,替换原有的颜色:
  style.setFillForegroundColor((short) 9);

三、setFillPattern(),设置单元格填充的样式,比如:
  style.setFillPattern(HSSFCellStyle.BIG_SPOTS);
  style.setFillForegroundColor(HSSFColor.RED.index);
  style.setFillBackgroundColor(HSSFColor.LIGHT_BLUE.index);
这样当前单元格就被红蓝交替的格子填充

上面3行代码,去掉setFillPattern设置填充样式的一行,同时设置前景色和背景色,生成的文件没有填充颜色,此时既不会用前景色填充,也不会用背景色填充。这种情况与 setFillPattern(HSSFCellStyle.NO_FILL); 时一样。
api上setFillBackgroundColor方法说明有如下示例:

public void setFillBackgroundColor(short bg)set the background fill color. 
For example:

cs.setFillPattern(HSSFCellStyle.FINE_DOTS );
cs.setFillBackgroundColor(new HSSFColor.RED().getIndex()); 
//上面代码经测试,是黑色点状的背景(无前景),设置红色背景色无效optionally a Foreground and background fill can be applied: Note: Ensure Foreground color is set prior to background 
cs.setFillPattern(HSSFCellStyle.FINE_DOTS );
cs.setFillForegroundColor(new HSSFColor.BLUE().getIndex());
cs.setFillBackgroundColor(new HSSFColor.RED().getIndex());or, for the special case of SOLID_FILL: 
cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND );

cs.setFillForegroundColor(new HSSFColor.RED().getIndex());

颜色类型是在HSSFColor里面定义的.
                执行结果
HSSFColor.ROYAL_BLUE  
HSSFColor.TEAL  
HSSFColor.LIME  
HSSFColor.PALE_BLUE  
HSSFColor.AQUA  
HSSFColor.GREEN  
HSSFColor.TURQUOISE  
HSSFColor.DARK_BLUE  
HSSFColor.CORNFLOWER_BLUE  
HSSFColor.OLIVE_GREEN  
HSSFColor.WHITE  
HSSFColor.LIGHT_TURQUOISE  
HSSFColor.LEMON_CHIFFON  
HSSFColor.LIGHT_GREEN  
HSSFColor.BLUE  
HSSFColor.DARK_RED  
HSSFColor.CORAL  
HSSFColor.RED  
HSSFColor.LIGHT_YELLOW  
HSSFColor.SKY_BLUE  
HSSFColor.BROWN  
HSSFColor.SEA_GREEN  
HSSFColor.INDIGO  
HSSFColor.MAROON  
HSSFColor.GREY_80_PERCENT  
HSSFColor.GREY_25_PERCENT  
HSSFColor.DARK_GREEN  
HSSFColor.YELLOW  
HSSFColor.GOLD  
HSSFColor.GREY_40_PERCENT  
HSSFColor.DARK_TEAL  
HSSFColor.PINK  
HSSFColor.ORCHID  
HSSFColor.LIGHT_BLUE  
HSSFColor.LIGHT_CORNFLOWER_BLUE  
HSSFColor.BLACK  
HSSFColor.DARK_YELLOW  
HSSFColor.VIOLET  
HSSFColor.LAVENDER  
HSSFColor.ROSE  
HSSFColor.BLUE_GREY  
HSSFColor.LIGHT_ORANGE  
HSSFColor.ORANGE  
HSSFColor.GREY_50_PERCENT  

java使用poi导出excel设置颜色问题相关推荐

  1. java使用POI导出Excel设置单元格格式为数值类型

    最近做项目遇到的坑,百度了半天导出都为货币类型.自定义类型和常规类型,,,最后终于解决,在此记录一下 其中contextstyle.setDataFormat(df.getFormat("0 ...

  2. Java操作poi导出Excel自定义字体颜色

    Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...

  3. POI导出Excel设置单元格背景色

    POI导出Excel设置单元格背景色 导出Excel的时候,没有设置背景色,用2003版本的Excel工具打开会出现文档单元格背景自动填充黑色的情况,没有找到好的解决方法,就主动给他填充一种颜色,问题 ...

  4. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  5. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  6. POI导出Excel设置背景色踩坑,解决背景色全黑(无效)的问题及指定列添加背景色,自定义颜色

    POI导出Excel设置背景色踩坑,解决背景色全黑的问题及指定列添加背景色,自定义颜色 一.自定义颜色 二.背景色全黑(无效)的问题解决![在这里插入图片描述](https://img-blog.cs ...

  7. POI导出EXCEL设置高度和宽度

    -------------------------------------------------------------------------------SSFRow hssfRow = shee ...

  8. java导出excel表格设置行高,POI导出Excel设置单元格格式

    使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻 准备工作 InputStream = templ ...

  9. JAVA POI导出EXCEL设置自定义样式(线框加粗,合并指定行,合计求和,冻结行)

    前面部分是当时查询的记录: 实现Excel文件单元格合并.冻结和文件导出 Workbook wb = new HSSFWorkbook();Sheet sheet = wb.createSheet(& ...

最新文章

  1. linux拨号上网的命令,LINUX下ADSL拨号上网
  2. mysql md5函数加密
  3. CodeForces - 1263A Sweet Problem(思维,水题)
  4. 双系统重装windows以后修复ubuntu的引导
  5. php语言cookie,如何创建一个简单的PHP cookie语言切换?
  6. 游戏必备组件有哪些_面试必备:2019Vue经典面试题总结(含答案)
  7. Hibernate映射关系总结篇
  8. 扩展 junit 框架_JUnit 5扩展模型的生命周期
  9. python中分支结构包括哪些_python中的分支结构
  10. Angular gitlab持续集成之runner配置
  11. [转]解决IE下CSS背景图片闪烁的Bug
  12. XML DTD用法【转载】
  13. linux内核时钟工作原理,linux内核的时钟机制
  14. 8部门联合约谈滴滴、高德等10家交通运输新业态平台公司
  15. wordpress如何让百度快速收录_百度搜狗蜘蛛池让你的新网站内页快速收录
  16. WebStorm破解激活
  17. java 32进制10进制互转
  18. 程序员是如何下载的视频?
  19. 解决Excel表格输入身份证号码显示异常的问题
  20. Idea、pycharm、Phpstorm鼠标滑动设置字体大小方法

热门文章

  1. 解决迅雷VIP尊享版、极速版、低版本崩溃修正补丁无法安装的问题
  2. 【C++】4.相关库:基于cjson的json数据处理
  3. SEM与信息流广告移动实训之认领产品要包含哪些内容
  4. php cookie怎么清除,php cookie如何清除,
  5. C#委托和冒泡排序扩展
  6. 干货满满的 Go Modules 和 goproxy.cn
  7. 【开源项目】股票配资系统开发与设计(二)
  8. 女孩学计算机号码,为什么女孩学计算机的要比男孩少很多
  9. endata 艺恩数据获取 202306
  10. MySQL 启动失败报错无法更新pid文件