SXSSFWorkbook操作Excel表格

SXSSFWorkbook

获取对象

// 创建一个空的Excel表格Sheet页
        String sheetName = "Sheet1";
        //创建workbook
        XSSFWorkbook sheetWorkbook = new XSSFWorkbook();
        //新建文件
        try(FileOutputStream fileOutputStream = new FileOutputStream(FILE_NAME)) {
          
   
            sheetWorkbook.createSheet(sheetName);
            sheetWorkbook.write(fileOutputStream);
        } catch (Exception e) {
          
   
            e.printStackTrace();
        }
        // 创建一个空的Excel表格
        XSSFWorkbook excelWorkbook = new XSSFWorkbook(new FileInputStream(new File(FILE_NAME)));
        // 表格对象
        SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(excelWorkbook, 100);
        // sheet页对象
        Sheet firstSheet = sxssfWorkbook.getSheetAt(0);
        // 获取单元格样式对象
        CellStyle titleStyle = sxssfWorkbook.createCellStyle();

设置单元格格式

设置列宽

firstSheet.setDefaultColumnWidth((short) 15);

冻结行列

注意,这里的数值从1开始。 第一个参数为列数,从左开始第一列为1; 第二个参数为行数,从上往下第一行为1.

// 只冻结2行
        firstSheet.createFreezePane(0,2);

对齐

// 标题水平居中
        titleStyle.setAlignment(HorizontalAlignment.CENTER);
        // 标题垂直居中
        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);

字体

// 字体加粗
        Font font = sxssfWorkbook.createFont();
        font.setBold(true);
        // 字体大小
        font.setFontHeight((short)800);
        titleStyle.setFont(font);

表格背景颜色

// 设置填充方案
        titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        // 背景色
        titleStyle.setFillForegroundColor(IndexedColors.LEMON_CHIFFON.index);

文章最后有颜色值对应颜色图片。

边框

titleStyle.setBorderLeft(BorderStyle.THIN);
        titleStyle.setBorderRight(BorderStyle.THIN);
        titleStyle.setBorderBottom(BorderStyle.THIN);
        titleStyle.setBorderTop(BorderStyle.THIN);

注意:设置边框的时候只是为每个单元格添加边框,即使是多个基本单元格合并为一个大单元格,也要为每一个基本单元格设置边框。 此时可以采用for循环

for(int i =0;i<16;i++){
          
   
            Cell titleCell = headTitleSecond.createCell(i);
            // 设置标题文本
            titleCell.setCellValue(title);
            titleCell.setCellStyle(titleStyle);
        }

单元格合并

// 标题合并单元格:第0行的第0列到第5列
        CellRangeAddress region = new CellRangeAddress(0, 0, 0, 15);
        firstSheet.addMergedRegion(region);
经验分享 程序员 微信小程序 职场和发展