From 8a076e175f6ae1815c66b00dbc9f8b0090683e1a Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期一, 20 七月 2020 15:25:05 +0800 Subject: [PATCH] Excel导出导入支持dictType字典类型 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 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 f4947e0..affb08f 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 @@ -50,6 +50,7 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.reflect.ReflectUtils; @@ -270,7 +271,11 @@ } else if (StringUtils.isNotEmpty(attr.readConverterExp())) { - val = reverseByExp(String.valueOf(val), attr.readConverterExp()); + val = reverseByExp(Convert.toStr(val), attr.readConverterExp()); + } + else if (StringUtils.isNotEmpty(attr.dictType())) + { + val = reverseDictByExp(attr.dictType(), Convert.toStr(val)); } ReflectUtils.invokeSetter(entity, propertyName, val); } @@ -529,13 +534,18 @@ Object value = getTargetValue(vo, field, attr); String dateFormat = attr.dateFormat(); String readConverterExp = attr.readConverterExp(); + String dictType = attr.dictType(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { - cell.setCellValue(convertByExp(String.valueOf(value), readConverterExp)); + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp)); + } + else if (StringUtils.isNotEmpty(dictType)) + { + cell.setCellValue(convertDictByExp(dictType, Convert.toStr(value))); } else { @@ -667,6 +677,30 @@ } /** + * 解析字典值 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @return 字典标签 + */ + public static String convertDictByExp(String dictType, String dictValue) throws Exception + { + return DictUtils.getDictLabel(dictType, dictValue); + } + + /** + * 反向解析值字典值 + * + * @param dictType 字典类型 + * @param dictValue 字典标签 + * @return 字典值 + */ + public static String reverseDictByExp(String dictType, String dictLabel) throws Exception + { + return DictUtils.getDictValue(dictType, dictLabel); + } + + /** * 编码文件名 */ public String encodingFilename(String filename) -- Gitblit v1.9.2