package com.kcim.common.util.excel; import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl; import org.apache.poi.ss.usermodel.*; /** * @program: performace * @description: excel 自定义样式 * @author: Wang.YS * @create: 2023-02-16 11:37 **/ public class ExcelStyleUtil extends ExcelExportStylerDefaultImpl { public ExcelStyleUtil(Workbook workbook) { super(workbook); } /** * 标题样式 */ @Override public CellStyle getTitleStyle(short color) { CellStyle cellStyle = super.getTitleStyle(color); cellStyle.setFont(getFont(workbook, 11, true)); cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderTop(BorderStyle.THIN); return cellStyle; } /** * 单元格的样式 */ @Override public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) { CellStyle cellStyle = super.stringSeptailStyle(workbook, isWarp); cellStyle.setFont(getFont(workbook, 10, false)); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderTop(BorderStyle.THIN); return cellStyle; } /** * 列表头样式 */ @Override public CellStyle getHeaderStyle(short color) { CellStyle cellStyle = super.getHeaderStyle(color); cellStyle.setFont(getFont(workbook, 9, false)); cellStyle.setAlignment(HorizontalAlignment.LEFT); cellStyle.setWrapText(true); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderTop(BorderStyle.THIN); return cellStyle; } /** * 单元格的样式 */ @Override public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) { CellStyle cellStyle = super.stringNoneStyle(workbook, isWarp); cellStyle.setFont(getFont(workbook, 10, false)); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderTop(BorderStyle.THIN); return cellStyle; } /** * 字体样式 * * @param size 字体大小 * @param isBold 是否加粗 * @return */ private Font getFont(Workbook workbook, int size, boolean isBold) { Font font = workbook.createFont(); //字体样式 font.setFontName("宋体"); //是否加粗 font.setBold(isBold); //字体大小 font.setFontHeightInPoints((short) size); return font; } }