src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -672,21 +672,6 @@ style.setFont(totalFont); styles.put("total", style); style = wb.createCellStyle(); style.cloneStyleFrom(styles.get("data")); style.setAlignment(HorizontalAlignment.LEFT); styles.put("data1", style); style = wb.createCellStyle(); style.cloneStyleFrom(styles.get("data")); style.setAlignment(HorizontalAlignment.CENTER); styles.put("data2", style); style = wb.createCellStyle(); style.cloneStyleFrom(styles.get("data")); style.setAlignment(HorizontalAlignment.RIGHT); styles.put("data3", style); return styles; } @@ -808,8 +793,7 @@ { // 创建cell cell = row.createCell(column); int align = attr.align().value(); cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : ""))); setDataCell(cell, attr); // 用于读取对象中的属性 Object value = getTargetValue(vo, field, attr); @@ -853,6 +837,34 @@ } /** * 设置单元格样式 * * @param cell 单元格 * @param excel 注解信息 */ public void setDataCell(Cell cell, Excel excel) { CellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER); style.setBorderRight(BorderStyle.THIN); style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderLeft(BorderStyle.THIN); style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderTop(BorderStyle.THIN); style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderBottom(BorderStyle.THIN); style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setAlignment(excel.align()); Font dataFont = wb.createFont(); dataFont.setFontName("Arial"); dataFont.setFontHeightInPoints((short) 10); dataFont.setColor(excel.color().index); style.setFont(dataFont); cell.setCellStyle(style); } /** * 设置 POI XSSFSheet 单元格提示或选择框 * * @param sheet 表单 src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java
@@ -5,6 +5,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.math.BigDecimal; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import com.ruoyi.common.utils.poi.ExcelHandlerAdapter; /** @@ -57,11 +59,6 @@ public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; /** * 导出类型(0数字 1字符串) */ public ColumnType cellType() default ColumnType.STRING; /** * 导出时在excel中每个列的高度 单位为字符 */ public double height() default 14; @@ -105,11 +102,21 @@ * 是否自动统计数据,在最后追加一行统计数据总和 */ public boolean isStatistics() default false; /** * 导出类型(0数字 1字符串) */ public ColumnType cellType() default ColumnType.STRING; /** * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) * 导出字体颜色 */ public Align align() default Align.AUTO; public IndexedColors color() default IndexedColors.BLACK; /** * 导出字段对齐方式 */ public HorizontalAlignment align() default HorizontalAlignment.CENTER; /** * 自定义数据处理器 @@ -120,22 +127,6 @@ * 自定义数据处理器参数 */ public String[] args() default {}; public enum Align { AUTO(0), LEFT(1), CENTER(2), RIGHT(3); private final int value; Align(int value) { this.value = value; } public int value() { return this.value; } } /** * 字段类型(0:导出导入;1:仅导出;2:仅导入)