【POI】自定义cell的颜色

来源:互联网 发布:网络教育报考公务员 编辑:程序博客网 时间:2024/05/01 13:41

流程说明:

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);         }

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

原创粉丝点击