Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
92c63012
提交
92c63012
authored
7月 23, 2020
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Excel支持分割字符串组内容
上级
5c6adb25
隐藏空白字符变更
内嵌
并排
正在显示
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,21 +56,59 @@ public class DictUtils
...
@@ -51,21 +56,59 @@ 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
);
if
(
StringUtils
.
containsAny
(
separator
,
dictValue
)
&&
StringUtils
.
isNotEmpty
(
datas
))
{
{
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
for
(
SysDictData
dict
:
datas
)
if
(
StringUtils
.
isNotEmpty
(
datas
))
{
{
for
(
S
ysDictData
dict
:
datas
)
for
(
S
tring
value
:
dictValue
.
split
(
separator
)
)
{
{
if
(
dictV
alue
.
equals
(
dict
.
getDictValue
()))
if
(
v
alue
.
equals
(
dict
.
getDictValue
()))
{
{
return
dict
.
getDictLabel
();
propertyString
.
append
(
dict
.
getDictLabel
()
+
separator
);
break
;
}
}
}
}
}
}
}
}
return
dictValue
;
else
{
for
(
SysDictData
dict
:
datas
)
{
if
(
dictValue
.
equals
(
dict
.
getDictValue
()))
{
return
dict
.
getDictLabel
();
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
}
/**
/**
...
@@ -73,25 +116,39 @@ public class DictUtils
...
@@ -73,25 +116,39 @@ 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
);
if
(
StringUtils
.
containsAny
(
separator
,
dictLabel
)
&&
StringUtils
.
isNotEmpty
(
datas
))
{
{
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
for
(
SysDictData
dict
:
datas
)
if
(
StringUtils
.
isNotEmpty
(
datas
))
{
{
for
(
S
ysDictData
dict
:
datas
)
for
(
S
tring
label
:
dictLabel
.
split
(
separator
)
)
{
{
if
(
dictL
abel
.
equals
(
dict
.
getDictLabel
()))
if
(
l
abel
.
equals
(
dict
.
getDictLabel
()))
{
{
return
dict
.
getDictValue
();
propertyString
.
append
(
dict
.
getDictValue
()
+
separator
);
break
;
}
}
}
}
}
}
}
}
return
dictLabel
;
else
{
for
(
SysDictData
dict
:
datas
)
{
if
(
dictLabel
.
equals
(
dict
.
getDictLabel
()))
{
return
dict
.
getDictValue
();
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
}
/**
/**
...
...
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
(
","
);
for
(
String
item
:
convertSource
)
{
{
String
[]
convertSource
=
converterExp
.
split
(
","
);
String
[]
itemArray
=
item
.
split
(
"="
);
for
(
String
item
:
convertSource
)
if
(
StringUtils
.
containsAny
(
separator
,
propertyValue
))
{
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
0
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
1
]
+
separator
);
break
;
}
}
}
else
{
{
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
itemArray
[
0
].
equals
(
propertyValue
))
if
(
itemArray
[
0
].
equals
(
propertyValue
))
{
{
return
itemArray
[
1
];
return
itemArray
[
1
];
}
}
}
}
}
}
catch
(
Exception
e
)
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
{
throw
e
;
}
return
propertyValue
;
}
}
/**
/**
...
@@ -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
(
","
);
for
(
String
item
:
convertSource
)
{
{
String
[]
convertSource
=
converterExp
.
split
(
","
);
String
[]
itemArray
=
item
.
split
(
"="
);
for
(
String
item
:
convertSource
)
if
(
StringUtils
.
containsAny
(
separator
,
propertyValue
))
{
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
1
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
0
]
+
separator
);
break
;
}
}
}
else
{
{
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
itemArray
[
1
].
equals
(
propertyValue
))
if
(
itemArray
[
1
].
equals
(
propertyValue
))
{
{
return
itemArray
[
0
];
return
itemArray
[
0
];
}
}
}
}
}
}
catch
(
Exception
e
)
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
{
throw
e
;
}
return
propertyValue
;
}
}
/**
/**
* 解析字典值
* 解析字典值
*
*
* @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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论