Excel注解支持color字体颜色
This commit is contained in:
		| @@ -5,6 +5,8 @@ import java.lang.annotation.Retention; | ||||
| 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; | ||||
|  | ||||
| /** | ||||
| @@ -56,11 +58,6 @@ public @interface Excel | ||||
|      */ | ||||
|     public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; | ||||
|  | ||||
|     /** | ||||
|      * 导出类型(0数字 1字符串) | ||||
|      */ | ||||
|     public ColumnType cellType() default ColumnType.STRING; | ||||
|  | ||||
|     /** | ||||
|      * 导出时在excel中每个列的高度 单位为字符 | ||||
|      */ | ||||
| @@ -107,9 +104,19 @@ public @interface Excel | ||||
|     public boolean isStatistics() default false; | ||||
|  | ||||
|     /** | ||||
|      * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) | ||||
|      * 导出类型(0数字 1字符串) | ||||
|      */ | ||||
|     public Align align() default Align.AUTO; | ||||
|     public ColumnType cellType() default ColumnType.STRING; | ||||
|  | ||||
|     /** | ||||
|      * 导出字体颜色 | ||||
|      */ | ||||
|     public IndexedColors color() default IndexedColors.BLACK; | ||||
|  | ||||
|     /** | ||||
|      * 导出字段对齐方式 | ||||
|      */ | ||||
|     public HorizontalAlignment align() default HorizontalAlignment.CENTER; | ||||
|  | ||||
|     /** | ||||
|      * 自定义数据处理器 | ||||
|   | ||||
| @@ -672,21 +672,6 @@ public class ExcelUtil<T> | ||||
|         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 @@ public class ExcelUtil<T> | ||||
|             { | ||||
|                 // 创建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); | ||||
| @@ -852,6 +836,34 @@ public class ExcelUtil<T> | ||||
|         return cell; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 设置单元格样式 | ||||
|      *  | ||||
|      * @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 单元格提示或选择框 | ||||
|      *  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user