【POI】自定义cell的颜色

本文详细介绍如何使用Java POI库来自定义Excel表格中的颜色,包括背景色、边框颜色等,并通过具体代码实例展示了如何设置单元格样式,如字体、边框、填充模式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程说明:

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值