java—poi設置單元格樣式


 /**
     * 功能描述: 設置單元格樣式
     * @Param: [wb, cellIndex]
     * @Return: org.apache.poi.xssf.usermodel.XSSFCellStyle
     * @Author: shibaobei
     * @Date: 2020/8/14 0014 10:02
     */
    private XSSFCellStyle setBorderStyle(XSSFWorkbook wb,int cellIndex,String backWidth){
        XSSFCellStyle cellStyle = wb.createCellStyle();
        XSSFFont font = null;
        switch (cellIndex){
            case 0:
                cellStyle.setBorderBottom(BorderStyle.DASHED); //下邊框
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.DASHED);//上邊框
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                break;
            case 1:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.MEDIUM_DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.MEDIUM_DASHED);//右邊框
                cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//設置前景填充樣式
                cellStyle.setFillForegroundColor(HSSFColor.BLACK.index);//前景填充色
                break;
            case 2:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                break;
            case 3:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                font = wb.createFont();
                font.setFontName("宋體");
                if("20".equals(backWidth)){
                    font.setFontHeightInPoints((short) 14);//設置字體大小
                }else if("30".equals(backWidth)){
                    font.setFontHeightInPoints((short) 16);//設置字體大小
                }else if("40".equals(backWidth)){
                    font.setFontHeightInPoints((short) 18);//設置字體大小
                }else if("50".equals(backWidth)){
                    font.setFontHeightInPoints((short) 20);//設置字體大小
                }else if("60".equals(backWidth)){
                    font.setFontHeightInPoints((short) 22);//設置字體大小
                }else{
                    font.setFontHeightInPoints((short) 14);//設置字體大小
                }
                cellStyle.setFont(font);//選擇需要用到的字體格式
                cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
                cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
                break;
            case 4:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                font = wb.createFont();
                font.setFontName("宋體");
                font.setFontHeightInPoints((short) 14);//設置字體大小
                cellStyle.setFont(font);//選擇需要用到的字體格式
                cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
                cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
                cellStyle.setWrapText(true);//設置自動換行
                break;
            case 5:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                font = wb.createFont();
                font.setFontName("宋體");
                if("20".equals(backWidth)){
                    font.setFontHeightInPoints((short) 12);//設置字體大小
                }else if("30".equals(backWidth)){
                    font.setFontHeightInPoints((short) 14);//設置字體大小
                }else if("40".equals(backWidth)){
                    font.setFontHeightInPoints((short) 16);//設置字體大小
                }else if("50".equals(backWidth)){
                    font.setFontHeightInPoints((short) 18);//設置字體大小
                }else if("60".equals(backWidth)){
                    font.setFontHeightInPoints((short) 20);//設置字體大小
                }else {
                    font.setFontHeightInPoints((short) 12);//設置字體大小
                }
                cellStyle.setFont(font);//選擇需要用到的字體格式
                cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
                cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
                break;
            case 6:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                font = wb.createFont();
                font.setFontName("宋體");
                if(StringUtils.isBlank(backWidth)  || "20".equals(backWidth)){
                    font.setFontHeightInPoints((short) 14);//設置字體大小
                }else{
                    font.setFontHeightInPoints((short) 16);//設置字體大小
                }
                cellStyle.setFont(font);//選擇需要用到的字體格式
                cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
                cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
                cellStyle.setWrapText(true);//設置自動換行
                cellStyle.setRotation((short)255); //設置文字豎向排列
                break;
            case 7:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                break;
            case 8:
                cellStyle.setBorderBottom(BorderStyle.MEDIUM); //下邊框
                cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //下邊框顏色
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.MEDIUM);//上邊框
                cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); //上邊框顏色
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//設置前景填充樣式
                cellStyle.setFillForegroundColor(HSSFColor.BLACK.index);//前景填充色
                break;
            case 9:
                cellStyle.setBorderBottom(BorderStyle.DASHED); //下邊框
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.DASHED);//上邊框
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                break;
            default:
                cellStyle.setBorderBottom(BorderStyle.DASHED); //下邊框
                cellStyle.setBorderLeft(BorderStyle.DASHED);//左邊框
                cellStyle.setBorderTop(BorderStyle.DASHED);//上邊框
                cellStyle.setBorderRight(BorderStyle.DASHED);//右邊框
                break;

        }
        return cellStyle;
    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM