java 操作execl添加边框

java 操作execl添加边框

使用poi导出execl时想要有网格的样式时,可以使用下面的方法进行对execl添加边框,下面的方法会保留原execl模板设置的样式

/**
     *  抽取的实现粗边框的方法
     * @param workBook
     * @param sheet
     * @param row
     * @param column
     */
    public static void setArroundBorder(HSSFWorkbook workBook, HSSFSheet sheet,
                                        int row, int column) {
        HSSFCell currentCell = sheet.getRow(row).getCell(column);
        if(currentCell==null){
            currentCell=sheet.getRow(row).createCell(column);
        }
        HSSFCellStyle currentStyle = workBook.createCellStyle();
        //克隆原execl样式
        currentStyle .cloneStyleFrom(currentCell.getCellStyle());
        short color = IndexedColors.BLACK.index;
        short style=HSSFCellStyle.BORDER_MEDIUM;

        currentStyle.setAlignment(CellStyle.ALIGN_CENTER);
        currentStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
        currentStyle.setWrapText(true);

        currentStyle.setBorderBottom(style);
        currentStyle.setBottomBorderColor(color);

        currentStyle.setBorderTop(style);
        currentStyle.setTopBorderColor(color);

        currentStyle.setBorderLeft(style);
        currentStyle.setLeftBorderColor(color);

        currentStyle.setBorderRight(style);
        currentStyle.setRightBorderColor(color);

        currentCell.setCellStyle(currentStyle);
    }

因为设置的边框是对每个单元格进行的操作,所以需要进行双重循环
最外层是遍历行,里面的循环遍历列

for(int f=0;f<=(listData.size());f++){
    for(int g=0;g<=14;g++){
       ExeclUtils.setArroundBorder((HSSFWorkbook)wb, (HSSFSheet) sheet, f, g);
    }
}

如果有此业务的小伙伴赶紧去试一试吧!

你可能感兴趣的:(execl导出,spring,boot,java,后端)