From 4d5c204b9aa4b8ba0e42d20a73f5bd3de9ed73d2 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期四, 06 七月 2023 22:08:47 +0800 Subject: [PATCH] 优化代码 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 15 +++++++++++++-- 1 files changed, 13 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 1d4bfa3..cbe47b6 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 @@ -99,6 +99,11 @@ public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; /** + * 用于dictType属性数据存储,避免重复查缓存 + */ + public Map<String, String> sysDictMap = new HashMap<String, String>(); + + /** * Excel sheet最大行数,默认65536 */ public static final int sheetSize = 65536; @@ -1034,7 +1039,12 @@ } else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) { - cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator)); + if (!sysDictMap.containsKey(dictType + value)) + { + String lable = convertDictByExp(Convert.toStr(value), dictType, separator); + sysDictMap.put(dictType + value, lable); + } + cell.setCellValue(sysDictMap.get(dictType + value)); } else if (value instanceof BigDecimal && -1 != attr.scale()) { @@ -1440,7 +1450,8 @@ Excel[] excels = attrs.value(); for (Excel attr : excels) { - if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) + if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { field.setAccessible(true); fields.add(new Object[] { field, attr }); -- Gitblit v1.9.2