记录 POI 3.10 导出 Excel 单元格设置背景

记录 POI 3.10 导出 Excel 单元格设置背景

      public static void main(String[] args) {
        // 创建一个新的Workbook
        XSSFWorkbook wb = new XSSFWorkbook();
        // 创建一个Sheet页
        Sheet sheet = wb.createSheet("Colored Sheet");
        // 创建一个行
        Row row = sheet.createRow(1);
        // 创建一个单元格
        Cell cell = row.createCell(1);

        //创建CellStyle与字体对象
        XSSFCellStyle style = wb.createCellStyle();
        XSSFFont font = wb.createFont();
        font.setFontName("黑体");
        // 字体大小
        font.setFontHeightInPoints((short) 28);
        // 加粗
        font.setBold(true);
        
        // 使用RGB形式设置颜色
        XSSFColor myColor  = new XSSFColor(new java.awt.Color(255, 204, 153));
        style.setFillForegroundColor(myColor);
        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

        // 确定边框样式
        short titleBorderThin = CellStyle.BORDER_THIN;
        short titleBorderColor = IndexedColors.BLACK.getIndex();
        // 应用边框样式
        style.setBorderTop(titleBorderThin);
        style.setTopBorderColor(titleBorderColor);
        style.setBorderBottom(titleBorderThin);
        style.setBottomBorderColor(titleBorderColor);
        style.setBorderLeft(titleBorderThin);
        style.setLeftBorderColor(titleBorderColor);
        style.setBorderRight(titleBorderThin);
        style.setRightBorderColor(titleBorderColor);

        style.setFont(font);

        // 设置单元格的样式
        cell.setCellValue("Custom Color");
        cell.setCellStyle(style);
        //自动调整第一列的宽度  在写入工作簿之前,所有的数据必须已经被写入单元格中,因为只有实际的数据写入后,POI才能计算出正确的列宽。
        sheet.autoSizeColumn(1);
        // 手动设置第一列宽度为10个字符的宽度(约2560)
        // sheet.setColumnWidth(1, 2560);

        // 写入到Excel文件
        try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
            wb.write(fileOut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 最后确保关闭Workbook以释放资源
        try {
            wb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值