Poi 设置excel 单元格 颜色;setFillBackgroundColor不起作用; poi 设置单元格 样式为百分比

背景:

HSSF:HSSF格式的excel,即比较老旧的.xls后缀的excel,如97-2003版的excel,支持的颜色略少。
XSSF:而XSSF(xlsx后缀)的excel的话(2007以及更新的版本),设置颜色就方便多了
本文用的是HSSF

核心代码:

		CellStyle style = workbook.createCellStyle();style.setFillForegroundColor(IndexedColors.RED.getIndex()); // 是设置前景色不是背景色style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

踩过的坑:

1)用setFillForegroundColor而不是setFillBackgroundColor()
一开始想当然以为要用setFillBackgroundColor这个方法,但是发现在xls后缀里这个方法不太管用,颜色总是盖住了文字。
后来搜了以后发现要用setFillForegroundColor()这个方法。

2)HSSF格式的excel(.xls后缀)能支持的颜色比较少:
即使是用调色板类(这里没介绍),能得到的颜色也只是有限的,而不能通过设置RGB三个值来获得精准的颜色。
(但是XSSF格式的应该就可以设置RGB三个值)我猜测可能HSSF支持的颜色就像枚举类型一样,只支持预先设定好的一些颜色。

生成的效果图:25%灰度颜色

在这里插入图片描述

poi 设置单元格 样式为百分比:

		CellStyle percent = workbook.createCellStyle();//百分比 格式percent .setAlignment(HorizontalAlignment.CENTER);percent .setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));cell.setStyle(percent);

效果在上面的图里能看到,如果想要百分比+灰色的话,就把两段代码应用在同一个style对象上~


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部