Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
T
topology
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
姜立玮
topology
Commits
92c63012
提交
92c63012
authored
7月 23, 2020
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Excel支持分割字符串组内容
上级
5c6adb25
变更
4
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
130 行增加
和
49 行删除
+130
-49
application.yml
ruoyi-admin/src/main/resources/application.yml
+1
-1
Excel.java
...mmon/src/main/java/com/ruoyi/common/annotation/Excel.java
+5
-0
DictUtils.java
...ommon/src/main/java/com/ruoyi/common/utils/DictUtils.java
+72
-15
ExcelUtil.java
...n/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+52
-33
没有找到文件。
ruoyi-admin/src/main/resources/application.yml
浏览文件 @
92c63012
...
@@ -13,7 +13,7 @@ ruoyi:
...
@@ -13,7 +13,7 @@ ruoyi:
# 获取ip地址开关
# 获取ip地址开关
addressEnabled
:
false
addressEnabled
:
false
# 验证码类型 math 数组计算 char 字符验证
# 验证码类型 math 数组计算 char 字符验证
captchaType
:
char
captchaType
:
math
# 开发环境配置
# 开发环境配置
server
:
server
:
...
...
ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java
浏览文件 @
92c63012
...
@@ -39,6 +39,11 @@ public @interface Excel
...
@@ -39,6 +39,11 @@ public @interface Excel
*/
*/
public
String
readConverterExp
()
default
""
;
public
String
readConverterExp
()
default
""
;
/**
* 分隔符,读取字符串组内容
*/
public
String
separator
()
default
","
;
/**
/**
* 导出类型(0数字 1字符串)
* 导出类型(0数字 1字符串)
*/
*/
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java
浏览文件 @
92c63012
...
@@ -14,6 +14,11 @@ import com.ruoyi.common.utils.spring.SpringUtils;
...
@@ -14,6 +14,11 @@ import com.ruoyi.common.utils.spring.SpringUtils;
*/
*/
public
class
DictUtils
public
class
DictUtils
{
{
/**
* 分隔符
*/
public
static
final
String
SEPARATOR
=
","
;
/**
/**
* 设置字典缓存
* 设置字典缓存
*
*
...
@@ -51,10 +56,49 @@ public class DictUtils
...
@@ -51,10 +56,49 @@ public class DictUtils
*/
*/
public
static
String
getDictLabel
(
String
dictType
,
String
dictValue
)
public
static
String
getDictLabel
(
String
dictType
,
String
dictValue
)
{
{
if
(
StringUtils
.
isNotEmpty
(
dictType
)
&&
StringUtils
.
isNotEmpty
(
dictValue
))
return
getDictLabel
(
dictType
,
dictValue
,
SEPARATOR
);
}
/**
* 根据字典类型和字典标签获取字典值
*
* @param dictType 字典类型
* @param dictLabel 字典标签
* @return 字典值
*/
public
static
String
getDictValue
(
String
dictType
,
String
dictLabel
)
{
return
getDictValue
(
dictType
,
dictLabel
,
SEPARATOR
);
}
/**
* 根据字典类型和字典值获取字典标签
*
* @param dictType 字典类型
* @param dictValue 字典值
* @param separator 分隔符
* @return 字典标签
*/
public
static
String
getDictLabel
(
String
dictType
,
String
dictValue
,
String
separator
)
{
{
StringBuilder
propertyString
=
new
StringBuilder
();
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
if
(
StringUtils
.
isNotEmpty
(
datas
))
if
(
StringUtils
.
containsAny
(
separator
,
dictValue
)
&&
StringUtils
.
isNotEmpty
(
datas
))
{
for
(
SysDictData
dict
:
datas
)
{
for
(
String
value
:
dictValue
.
split
(
separator
))
{
if
(
value
.
equals
(
dict
.
getDictValue
()))
{
propertyString
.
append
(
dict
.
getDictLabel
()
+
separator
);
break
;
}
}
}
}
else
{
{
for
(
SysDictData
dict
:
datas
)
for
(
SysDictData
dict
:
datas
)
{
{
...
@@ -64,8 +108,7 @@ public class DictUtils
...
@@ -64,8 +108,7 @@ public class DictUtils
}
}
}
}
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
return
dictValue
;
}
}
/**
/**
...
@@ -73,14 +116,29 @@ public class DictUtils
...
@@ -73,14 +116,29 @@ public class DictUtils
*
*
* @param dictType 字典类型
* @param dictType 字典类型
* @param dictLabel 字典标签
* @param dictLabel 字典标签
* @param separator 分隔符
* @return 字典值
* @return 字典值
*/
*/
public
static
String
getDictValue
(
String
dictType
,
String
dictLabel
)
public
static
String
getDictValue
(
String
dictType
,
String
dictLabel
,
String
separator
)
{
if
(
StringUtils
.
isNotEmpty
(
dictType
)
&&
StringUtils
.
isNotEmpty
(
dictLabel
))
{
{
StringBuilder
propertyString
=
new
StringBuilder
();
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
if
(
StringUtils
.
isNotEmpty
(
datas
))
if
(
StringUtils
.
containsAny
(
separator
,
dictLabel
)
&&
StringUtils
.
isNotEmpty
(
datas
))
{
for
(
SysDictData
dict
:
datas
)
{
for
(
String
label
:
dictLabel
.
split
(
separator
))
{
if
(
label
.
equals
(
dict
.
getDictLabel
()))
{
propertyString
.
append
(
dict
.
getDictValue
()
+
separator
);
break
;
}
}
}
}
else
{
{
for
(
SysDictData
dict
:
datas
)
for
(
SysDictData
dict
:
datas
)
{
{
...
@@ -90,8 +148,7 @@ public class DictUtils
...
@@ -90,8 +148,7 @@ public class DictUtils
}
}
}
}
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
return
dictLabel
;
}
}
/**
/**
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
浏览文件 @
92c63012
...
@@ -271,11 +271,11 @@ public class ExcelUtil<T>
...
@@ -271,11 +271,11 @@ public class ExcelUtil<T>
}
}
else
if
(
StringUtils
.
isNotEmpty
(
attr
.
readConverterExp
()))
else
if
(
StringUtils
.
isNotEmpty
(
attr
.
readConverterExp
()))
{
{
val
=
reverseByExp
(
Convert
.
toStr
(
val
),
attr
.
readConverterExp
());
val
=
reverseByExp
(
Convert
.
toStr
(
val
),
attr
.
readConverterExp
()
,
attr
.
separator
()
);
}
}
else
if
(
StringUtils
.
isNotEmpty
(
attr
.
dictType
()))
else
if
(
StringUtils
.
isNotEmpty
(
attr
.
dictType
()))
{
{
val
=
reverseDictByExp
(
attr
.
dictType
(),
Convert
.
toStr
(
val
));
val
=
reverseDictByExp
(
Convert
.
toStr
(
val
),
attr
.
dictType
(),
attr
.
separator
(
));
}
}
ReflectUtils
.
invokeSetter
(
entity
,
propertyName
,
val
);
ReflectUtils
.
invokeSetter
(
entity
,
propertyName
,
val
);
}
}
...
@@ -534,6 +534,7 @@ public class ExcelUtil<T>
...
@@ -534,6 +534,7 @@ public class ExcelUtil<T>
Object
value
=
getTargetValue
(
vo
,
field
,
attr
);
Object
value
=
getTargetValue
(
vo
,
field
,
attr
);
String
dateFormat
=
attr
.
dateFormat
();
String
dateFormat
=
attr
.
dateFormat
();
String
readConverterExp
=
attr
.
readConverterExp
();
String
readConverterExp
=
attr
.
readConverterExp
();
String
separator
=
attr
.
separator
();
String
dictType
=
attr
.
dictType
();
String
dictType
=
attr
.
dictType
();
if
(
StringUtils
.
isNotEmpty
(
dateFormat
)
&&
StringUtils
.
isNotNull
(
value
))
if
(
StringUtils
.
isNotEmpty
(
dateFormat
)
&&
StringUtils
.
isNotNull
(
value
))
{
{
...
@@ -541,11 +542,11 @@ public class ExcelUtil<T>
...
@@ -541,11 +542,11 @@ public class ExcelUtil<T>
}
}
else
if
(
StringUtils
.
isNotEmpty
(
readConverterExp
)
&&
StringUtils
.
isNotNull
(
value
))
else
if
(
StringUtils
.
isNotEmpty
(
readConverterExp
)
&&
StringUtils
.
isNotNull
(
value
))
{
{
cell
.
setCellValue
(
convertByExp
(
Convert
.
toStr
(
value
),
readConverterExp
));
cell
.
setCellValue
(
convertByExp
(
Convert
.
toStr
(
value
),
readConverterExp
,
separator
));
}
}
else
if
(
StringUtils
.
isNotEmpty
(
dictType
))
else
if
(
StringUtils
.
isNotEmpty
(
dictType
))
{
{
cell
.
setCellValue
(
convertDictByExp
(
dictType
,
Convert
.
toStr
(
value
)
));
cell
.
setCellValue
(
convertDictByExp
(
Convert
.
toStr
(
value
),
dictType
,
separator
));
}
}
else
else
{
{
...
@@ -623,28 +624,36 @@ public class ExcelUtil<T>
...
@@ -623,28 +624,36 @@ public class ExcelUtil<T>
*
*
* @param propertyValue 参数值
* @param propertyValue 参数值
* @param converterExp 翻译注解
* @param converterExp 翻译注解
* @param separator 分隔符
* @return 解析后值
* @return 解析后值
* @throws Exception
*/
*/
public
static
String
convertByExp
(
String
propertyValue
,
String
converterExp
)
throws
Exception
public
static
String
convertByExp
(
String
propertyValue
,
String
converterExp
,
String
separator
)
{
try
{
{
StringBuilder
propertyString
=
new
StringBuilder
();
String
[]
convertSource
=
converterExp
.
split
(
","
);
String
[]
convertSource
=
converterExp
.
split
(
","
);
for
(
String
item
:
convertSource
)
for
(
String
item
:
convertSource
)
{
{
String
[]
itemArray
=
item
.
split
(
"="
);
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
itemArray
[
0
].
equals
(
propertyValue
))
if
(
StringUtils
.
containsAny
(
separator
,
propertyValue
))
{
{
return
itemArray
[
1
];
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
0
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
1
]
+
separator
);
break
;
}
}
}
}
}
}
catch
(
Exception
e
)
else
{
if
(
itemArray
[
0
].
equals
(
propertyValue
))
{
{
throw
e
;
return
itemArray
[
1
]
;
}
}
return
propertyValue
;
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
}
/**
/**
...
@@ -652,52 +661,62 @@ public class ExcelUtil<T>
...
@@ -652,52 +661,62 @@ public class ExcelUtil<T>
*
*
* @param propertyValue 参数值
* @param propertyValue 参数值
* @param converterExp 翻译注解
* @param converterExp 翻译注解
* @param separator 分隔符
* @return 解析后值
* @return 解析后值
* @throws Exception
*/
*/
public
static
String
reverseByExp
(
String
propertyValue
,
String
converterExp
)
throws
Exception
public
static
String
reverseByExp
(
String
propertyValue
,
String
converterExp
,
String
separator
)
{
try
{
{
StringBuilder
propertyString
=
new
StringBuilder
();
String
[]
convertSource
=
converterExp
.
split
(
","
);
String
[]
convertSource
=
converterExp
.
split
(
","
);
for
(
String
item
:
convertSource
)
for
(
String
item
:
convertSource
)
{
{
String
[]
itemArray
=
item
.
split
(
"="
);
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
itemArray
[
1
].
equals
(
propertyValue
))
if
(
StringUtils
.
containsAny
(
separator
,
propertyValue
))
{
{
return
itemArray
[
0
];
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
1
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
0
]
+
separator
);
break
;
}
}
}
}
}
}
catch
(
Exception
e
)
else
{
{
throw
e
;
if
(
itemArray
[
1
].
equals
(
propertyValue
))
{
return
itemArray
[
0
];
}
}
}
return
propertyValue
;
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
}
/**
/**
* 解析字典值
* 解析字典值
*
*
* @param dictType 字典类型
* @param dictValue 字典值
* @param dictValue 字典值
* @param dictType 字典类型
* @param separator 分隔符
* @return 字典标签
* @return 字典标签
*/
*/
public
static
String
convertDictByExp
(
String
dict
Type
,
String
dictValue
)
throws
Exception
public
static
String
convertDictByExp
(
String
dict
Value
,
String
dictType
,
String
separator
)
{
{
return
DictUtils
.
getDictLabel
(
dictType
,
dictValue
);
return
DictUtils
.
getDictLabel
(
dictType
,
dictValue
,
separator
);
}
}
/**
/**
* 反向解析值字典值
* 反向解析值字典值
*
*
* @param dictLabel 字典标签
* @param dictType 字典类型
* @param dictType 字典类型
* @param
dictValue 字典标签
* @param
separator 分隔符
* @return 字典值
* @return 字典值
*/
*/
public
static
String
reverseDictByExp
(
String
dict
Type
,
String
dictLabel
)
throws
Exception
public
static
String
reverseDictByExp
(
String
dict
Label
,
String
dictType
,
String
separator
)
{
{
return
DictUtils
.
getDictValue
(
dictType
,
dictLabel
);
return
DictUtils
.
getDictValue
(
dictType
,
dictLabel
,
separator
);
}
}
/**
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论