From eb6a9c3faf9a35889a95690791caaedd4178c97b Mon Sep 17 00:00:00 2001 From: jueyue Date: Mon, 1 Dec 2014 10:35:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0,=E5=90=8E=E7=BC=80=E9=80=89?= =?UTF-8?q?=E9=A1=B9,=E4=BF=AE=E6=94=B9=E4=BA=86map=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../poi/excel/annotation/Excel.java | 4 ++++ .../entity/params/ExcelExportEntity.java | 16 +++++++++++++ .../poi/excel/export/base/ExportBase.java | 23 ++++++++++--------- .../poi/entity/StudentEntity.java | 2 +- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java index 8254e66..76a92f6 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java @@ -47,6 +47,10 @@ public @interface Excel { * 导入的时间格式,以这个是否为空来判断是否需要格式化日期 */ public String importFormat() default ""; + /** + * 文字后缀,如% 90 变成90% + */ + public String suffix() default ""; /** * 是否换行 即支持\n diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java index 36009a2..6fbf954 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java @@ -50,13 +50,21 @@ public class ExcelExportEntity extends ExcelBaseEntity { * cell 函数 */ private String cellFormula; + /** + * 后缀 + */ + private String suffix; + private List list; + public ExcelExportEntity() { } + public ExcelExportEntity(String name) { super.name = name; } + public ExcelExportEntity(String name, Object key) { super.name = name; this.key = key; @@ -156,4 +164,12 @@ public class ExcelExportEntity extends ExcelBaseEntity { this.isWrap = isWrap; } + public String getSuffix() { + return suffix; + } + + public void setSuffix(String suffix) { + this.suffix = suffix; + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java index 019d54b..05e4680 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java @@ -47,12 +47,7 @@ public class ExportBase { throws Exception { Excel excel = field.getAnnotation(Excel.class); ExcelExportEntity excelEntity = new ExcelExportEntity(); - try { - excelEntity.setType(excel.type()); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + excelEntity.setType(excel.type()); getExcelField(targetId, field, excelEntity, excel, pojoClass); if (getMethods != null) { List newMethods = new ArrayList(); @@ -162,18 +157,23 @@ public class ExportBase { public Object getCellValue(ExcelExportEntity entity, Object obj) throws Exception { Object value; if (obj instanceof Map) { - return ((Map) obj).get(entity.getKey()); + value = ((Map) obj).get(entity.getKey()); } else { value = entity.getMethods() != null ? getFieldBySomeMethod(entity.getMethods(), obj) : entity.getMethod().invoke(obj, new Object[] {}); } - if (needHanlderList != null && needHanlderList.contains(entity.getName())) { - value = dataHanlder.exportHandler(obj, entity.getName(), value); - } else if (StringUtils.isNotEmpty(entity.getFormat())) { + if (StringUtils.isNotEmpty(entity.getFormat())) { value = formatValue(value, entity); - } else if (entity.getReplace() != null && entity.getReplace().length > 0) { + } + if (entity.getReplace() != null && entity.getReplace().length > 0) { value = replaceValue(entity.getReplace(), String.valueOf(value)); } + if (needHanlderList != null && needHanlderList.contains(entity.getName())) { + value = dataHanlder.exportHandler(obj, entity.getName(), value); + } + if (StringUtils.isNotEmpty(entity.getSuffix()) && value != null) { + value = value + entity.getSuffix(); + } return value == null ? "" : value.toString(); } @@ -199,6 +199,7 @@ public class ExportBase { excelEntity.setOrderNum(getCellOrder(excel.orderNum(), targetId)); excelEntity.setWrap(excel.isWrap()); excelEntity.setExportImageType(excel.imageType()); + excelEntity.setSuffix(excel.suffix()); excelEntity.setDatabaseFormat(excel.databaseFormat()); excelEntity.setFormat(StringUtils.isNotEmpty(excel.exportFormat()) ? excel.exportFormat() : excel.format()); diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/StudentEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/StudentEntity.java index 897bd75..d470d3a 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/StudentEntity.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/StudentEntity.java @@ -25,7 +25,7 @@ public class StudentEntity implements java.io.Serializable { /** * 学生性别 */ - @Excel(name = "学生性别", replace = { "男_1", "女_2" }) + @Excel(name = "学生性别", replace = { "男_1", "女_2" },suffix = "生") private int sex; @Excel(name = "出生日期", format = "yyyy-MM-dd HH:mm:ss", mergeVertical = true)