From 739f5e86a81ac12c452391b4c1e6110653e39ffe Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期四, 03 十二月 2020 13:16:30 +0800 Subject: [PATCH] Excel支持注解align对齐方式 --- src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 09ad14b..db977c3 100644 --- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -6,7 +6,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; @@ -244,19 +243,19 @@ val = Convert.toStr(val); } } - else if ((Integer.TYPE == fieldType) || (Integer.class == fieldType)) + else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) { val = Convert.toInt(val); } - else if ((Long.TYPE == fieldType) || (Long.class == fieldType)) + else if (Long.TYPE == fieldType || Long.class == fieldType) { val = Convert.toLong(val); } - else if ((Double.TYPE == fieldType) || (Double.class == fieldType)) + else if (Double.TYPE == fieldType || Double.class == fieldType) { val = Convert.toDouble(val); } - else if ((Float.TYPE == fieldType) || (Float.class == fieldType)) + else if (Float.TYPE == fieldType || Float.class == fieldType) { val = Convert.toFloat(val); } @@ -274,6 +273,10 @@ { val = DateUtil.getJavaDate((Double) val); } + } + else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) + { + val = Convert.toBool(val, false); } if (StringUtils.isNotNull(fieldType)) { @@ -470,6 +473,21 @@ 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; } @@ -504,7 +522,7 @@ else if (ColumnType.NUMERIC == attr.cellType()) { cell.setCellType(CellType.NUMERIC); - cell.setCellValue(Integer.parseInt(value + "")); + cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); } } @@ -552,7 +570,8 @@ { // 鍒涘缓cell cell = row.createCell(column); - cell.setCellStyle(styles.get("data")); + int align = attr.align().value(); + cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : ""))); // 鐢ㄤ簬璇诲彇瀵硅薄涓殑灞炴�� Object value = getTargetValue(vo, field, attr); @@ -864,9 +883,9 @@ if (StringUtils.isNotEmpty(name)) { Class<?> clazz = o.getClass(); - String methodName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1); - Method method = clazz.getMethod(methodName); - o = method.invoke(o); + Field field = clazz.getDeclaredField(name); + field.setAccessible(true); + o = field.get(o); } return o; } -- Gitblit v1.9.3