【POI】自定义cell的颜色

流程说明:

POI对象中包括一部分基础颜色,其使用方式为

HSSFCellStyle styleheader = wb.createCellStyle();// 创建一个单元的样式// 背景色的设定style.setFillBackgroundColor(HSSFColor.GREEN.index);

其中,HSSFColor.GREEN.index 就是POI自带的颜色。

我们的思路就是,修改POI自带的颜色,将其的RGB配置成我们想要的颜色,然后让系统调用。

完整流程:

1. 创建工作表以及内容sheet页对象

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Sheet 1");

2. 修改原有poi的颜色对象,将其修改为需要的颜色

//设置自定义颜色
HSSFPalette customPalette = wb.getCustomPalette();  customPalette.setColorAtIndex(HSSFColor.LIGHT_GREEN.index, (byte) 0, (byte) 204, (byte) 153); customPalette.setColorAtIndex(HSSFColor.LIGHT_BLUE.index, (byte) 203, (byte) 236, (byte) 222); customPalette.setColorAtIndex(HSSFColor.LIGHT_YELLOW.index, (byte) 231, (byte) 246, (byte) 239); 

3. 创建row

HSSFCell cell;
HSSFRow row;

4. 创建style对象

HSSFCellStyle styleheader = wb.createCellStyle();// 创建一个单元的样式
// 背景色的设定style.setFillBackgroundColor(HSSFColor.GREEN.index);// 填充模式style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 设置水平居中style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中// 设置上下左右边框样式style.setBorderLeft(HSSFCellStyle.BORDER_THICK);style.setBorderBottom(HSSFCellStyle.BORDER_THICK);style.setBorderRight(HSSFCellStyle.BORDER_THICK);style.setBorderTop(HSSFCellStyle.BORDER_THICK);//设置边框颜色style.setBottomBorderColor(HSSFColor.WHITE.index);style.setTopBorderColor(HSSFColor.WHITE.index);style.setLeftBorderColor(HSSFColor.WHITE.index);style.setRightBorderColor(HSSFColor.WHITE.index);// 设置字体HSSFFont font = wb.createFont();font.setFontName("Microsoft Yahei");font.setFontHeightInPoints((short) 14);font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//设置背景颜色style.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);font.setColor(HSSFColor.BLACK.index);

5. 在row中增加cell

//表头数据String[] headRow1 = { "", "GMV", "UV","CVR","PRICE"};//从第二行开始插入数据int rowint = 1;row = sheet.createRow((short) rowint++);row.setHeight((short)(538));//插入第一个表头数据for (int i = 0; i < headRow1.length; i++) {cell = row.createCell(i+6);cell.setCellValue(headRow1[i]);cell.setCellStyle(styleheader);}

其中,最主要的代码就是第二段。


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部