java—poi设置单元格样式

/ Java / 没有评论 / 1251浏览
/**
 * 功能描述: 设置单元格样式
 * @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;
}