From a83e27ce52a7ddac56f69cefab86cf0d49764954 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 10 Jul 2019 18:37:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=B9=E8=B1=A1=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E5=A4=9A=E4=B8=AAExcels=E5=AF=BC=E5=87=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 46 +++++-------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 777a9353..bb47fba3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -92,7 +92,7 @@ public class ExcelUtil /** * 注解列表 */ - private List fields; + private List fields; /** * 实体对象 @@ -316,24 +316,12 @@ public class ExcelUtil // 产生一行 Row row = sheet.createRow(0); - int excelsNo = 0; + int column = 0; // 写入各个字段的列头名称 - for (int column = 0; column < fields.size(); column++) + for (Object[] os : fields) { - Field field = fields.get(column); - if (field.isAnnotationPresent(Excel.class)) - { - Excel excel = field.getAnnotation(Excel.class); - createCell(excel, row, column); - } - if (field.isAnnotationPresent(Excels.class)) - { - Excels attrs = field.getAnnotation(Excels.class); - Excel[] excels = attrs.value(); - // 写入列名 - Excel excel = excels[excelsNo++]; - createCell(excel, row, column); - } + Excel excel = (Excel) os[1]; + this.createCell(excel, row, column++); } if (Type.EXPORT.equals(type)) { @@ -397,24 +385,14 @@ public class ExcelUtil row = sheet.createRow(i + 1 - startNo); // 得到导出对象. T vo = (T) list.get(i); - int excelsNo = 0; - for (int column = 0; column < fields.size(); column++) + int column = 0; + for (Object[] os : fields) { - // 获得field. - Field field = fields.get(column); + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; // 设置实体类私有属性可访问 field.setAccessible(true); - if (field.isAnnotationPresent(Excel.class)) - { - addCell(field.getAnnotation(Excel.class), row, vo, field, column, cs); - } - if (field.isAnnotationPresent(Excels.class)) - { - Excels attrs = field.getAnnotation(Excels.class); - Excel[] excels = attrs.value(); - Excel excel = excels[excelsNo++]; - addCell(excel, row, vo, field, column, cs); - } + this.addCell(excel, row, vo, field, column++, cs); } } } @@ -720,7 +698,7 @@ public class ExcelUtil */ private void createExcelField() { - this.fields = new ArrayList(); + this.fields = new ArrayList(); List tempFields = new ArrayList<>(); tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); @@ -752,7 +730,7 @@ public class ExcelUtil { if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) { - this.fields.add(field); + this.fields.add(new Object[] { field, attr }); } }