14 changed files with 165 additions and 57 deletions
@ -0,0 +1,93 @@ |
|||||
|
package com.epmet.commons.tools.utils.poi.excel; |
||||
|
|
||||
|
|
||||
|
import cn.afterturn.easypoi.excel.export.styler.AbstractExcelExportStyler; |
||||
|
import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; |
||||
|
import org.apache.poi.ss.usermodel.*; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* desc:easypoi自定义表头颜色 |
||||
|
* |
||||
|
* @author: LiuJanJun |
||||
|
* @date: 2022/4/8 4:39 下午 |
||||
|
* @version: 1.0 |
||||
|
*/ |
||||
|
public class EasyPoiExcelExportStylerImpl extends AbstractExcelExportStyler |
||||
|
implements IExcelExportStyler { |
||||
|
public EasyPoiExcelExportStylerImpl(Workbook workbook) { |
||||
|
super.createStyles(workbook); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public CellStyle getTitleStyle(short color) { |
||||
|
CellStyle titleStyle = workbook.createCellStyle(); |
||||
|
Font font = this.workbook.createFont(); |
||||
|
// 字体加粗
|
||||
|
font.setBold(true); |
||||
|
font.setFontHeightInPoints((short) 12); |
||||
|
titleStyle.setFont(font); |
||||
|
//居中
|
||||
|
titleStyle.setAlignment(HorizontalAlignment.CENTER); |
||||
|
//垂直居中
|
||||
|
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); |
||||
|
//设置颜色
|
||||
|
titleStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); |
||||
|
titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); |
||||
|
titleStyle.setBorderRight(BorderStyle.THIN); |
||||
|
titleStyle.setBorderLeft(BorderStyle.THIN); |
||||
|
titleStyle.setBorderBottom(BorderStyle.THIN); |
||||
|
titleStyle.setBorderTop(BorderStyle.THIN); |
||||
|
titleStyle.setWrapText(true); |
||||
|
return titleStyle; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public CellStyle getHeaderStyle(short color) { |
||||
|
CellStyle titleStyle = workbook.createCellStyle(); |
||||
|
Font font = workbook.createFont(); |
||||
|
font.setFontHeightInPoints((short) 12); |
||||
|
titleStyle.setFont(font); |
||||
|
titleStyle.setAlignment(HorizontalAlignment.CENTER); |
||||
|
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* desc:隔行样式 |
||||
|
* @param workbook |
||||
|
* @param isWarp |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) { |
||||
|
CellStyle style = workbook.createCellStyle(); |
||||
|
//style.setAlignment(HorizontalAlignment.CENTER);
|
||||
|
style.setVerticalAlignment(VerticalAlignment.CENTER); |
||||
|
style.setDataFormat(STRING_FORMAT); |
||||
|
if (isWarp) { |
||||
|
style.setWrapText(true); |
||||
|
} |
||||
|
|
||||
|
return style; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* desc:隔行样式 |
||||
|
* @param workbook |
||||
|
* @param isWarp |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) { |
||||
|
CellStyle style = workbook.createCellStyle(); |
||||
|
//style.setAlignment(HorizontalAlignment.CENTER);
|
||||
|
style.setVerticalAlignment(VerticalAlignment.CENTER); |
||||
|
style.setDataFormat(STRING_FORMAT); |
||||
|
if (isWarp) { |
||||
|
style.setWrapText(true); |
||||
|
} |
||||
|
return style; |
||||
|
} |
||||
|
|
||||
|
} |
@ -1,4 +1,4 @@ |
|||||
package com.epmet.commons.tools.utils.excel; |
package com.epmet.commons.tools.utils.poi.excel; |
||||
|
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams; |
import cn.afterturn.easypoi.excel.entity.ExportParams; |
||||
import lombok.AllArgsConstructor; |
import lombok.AllArgsConstructor; |
@ -0,0 +1,46 @@ |
|||||
|
package com.epmet.commons.tools.utils.poi.excel; |
||||
|
|
||||
|
/** |
||||
|
* desc:easyExcel 冻结标题 |
||||
|
* |
||||
|
* @author: LiuJanJun |
||||
|
* @date: 2022/4/11 10:27 上午 |
||||
|
* @version: 1.0 |
||||
|
*/ |
||||
|
|
||||
|
import com.alibaba.excel.write.handler.SheetWriteHandler; |
||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; |
||||
|
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; |
||||
|
import org.apache.poi.ss.usermodel.Sheet; |
||||
|
import org.apache.poi.ss.util.CellRangeAddress; |
||||
|
|
||||
|
|
||||
|
public class FreezeAndFilter implements SheetWriteHandler { |
||||
|
|
||||
|
public int colSplit = 0, rowSplit = 1, leftmostColumn = 0, topRow = 1; |
||||
|
public String autoFilterRange = "1:1"; |
||||
|
private boolean isFilter; |
||||
|
|
||||
|
public FreezeAndFilter() { |
||||
|
|
||||
|
} |
||||
|
public FreezeAndFilter(boolean isFilter) { |
||||
|
this.isFilter = isFilter; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { |
||||
|
Sheet sheet = writeSheetHolder.getSheet(); |
||||
|
sheet.createFreezePane(colSplit, rowSplit, leftmostColumn, topRow); |
||||
|
//不让他筛选
|
||||
|
if (isFilter){ |
||||
|
sheet.setAutoFilter(CellRangeAddress.valueOf(autoFilterRange)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
Binary file not shown.
Loading…
Reference in new issue