Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-oss
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-oss
Commits
19bba5a7
Commit
19bba5a7
authored
Apr 03, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
10181b40
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
56 additions
and
16 deletions
+56
-16
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/ExcelExportServiceImpl.java
+56
-16
No files found.
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/ExcelExportServiceImpl.java
View file @
19bba5a7
...
...
@@ -235,6 +235,44 @@ public class ExcelExportServiceImpl implements ExcelExportService {
return
fieldAnnotationMap
;
}
// /**
// * 构建数据Map列表,将对象列表转换为EasyPOI所需的Map结构
// * @param dataList 数据对象列表
// * @param fieldNames 需要导出的字段名称列表
// * @param entityClass 实体类类型
// * @return 数据Map列表
// */
// private List<Map<String, Object>> buildDataMapList(List<?> dataList, List<String> fieldNames, Class<?> entityClass) {
// // 创建数据Map列表
// List<Map<String, Object>> dataMapList = new ArrayList<>();
// if (CollectionUtils.isEmpty(dataList)) {
// return dataMapList;
// }
// // 遍历数据列表中的每个对象
// for (Object data : dataList) {
// // 为每个对象创建字段-值的映射
// Map<String, Object> map = new HashMap<>();
// // 遍历所有需要导出的字段
// for (String fieldName : fieldNames) {
// try {
// // 通过反射获取字段对象
// Field field = entityClass.getDeclaredField(fieldName);
// // 设置字段可访问(突破private限制)
// field.setAccessible(true);
// // 将字段值放入Map,key为字段名,value为字段值
// map.put(fieldName, field.get(data));
// } catch (Exception e) {
// // 如果获取字段值失败,设置为空字符串
// map.put(fieldName, "");
// }
// }
// // 将当前对象的字段映射添加到列表
// dataMapList.add(map);
// }
// return dataMapList;
// }
/**
* 构建数据Map列表,将对象列表转换为EasyPOI所需的Map结构
* @param dataList 数据对象列表
...
...
@@ -243,30 +281,32 @@ public class ExcelExportServiceImpl implements ExcelExportService {
* @return 数据Map列表
*/
private
List
<
Map
<
String
,
Object
>>
buildDataMapList
(
List
<?>
dataList
,
List
<
String
>
fieldNames
,
Class
<?>
entityClass
)
{
// 创建数据Map列表
List
<
Map
<
String
,
Object
>>
dataMapList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isEmpty
(
dataList
))
{
return
dataMapList
;
}
// 遍历数据列表中的每个对象
for
(
Object
data
:
dataList
)
{
// 为每个对象创建字段-值的映射
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
// 遍历所有需要导出的字段
for
(
String
fieldName
:
fieldNames
)
{
try
{
// 通过反射获取字段对象
Field
field
=
entityClass
.
getDeclaredField
(
fieldName
);
// 设置字段可访问(突破private限制)
field
.
setAccessible
(
true
);
// 将字段值放入Map,key为字段名,value为字段值
map
.
put
(
fieldName
,
field
.
get
(
data
));
}
catch
(
Exception
e
)
{
// 如果获取字段值失败,设置为空字符串
map
.
put
(
fieldName
,
""
);
// 判断是否为 Map 类型(Feign 反序列化结果)
if
(
data
instanceof
Map
)
{
Map
<
String
,
Object
>
dataMap
=
(
Map
<
String
,
Object
>)
data
;
for
(
String
fieldName
:
fieldNames
)
{
Object
value
=
dataMap
.
get
(
fieldName
);
map
.
put
(
fieldName
,
value
!=
null
?
value
:
""
);
}
}
else
{
// 原有的反射逻辑,适用于本地直接调用
for
(
String
fieldName
:
fieldNames
)
{
try
{
Field
field
=
entityClass
.
getDeclaredField
(
fieldName
);
field
.
setAccessible
(
true
);
map
.
put
(
fieldName
,
field
.
get
(
data
));
}
catch
(
Exception
e
)
{
log
.
warn
(
"字段 {} 获取失败: {}"
,
fieldName
,
e
.
getMessage
());
map
.
put
(
fieldName
,
""
);
}
}
}
// 将当前对象的字段映射添加到列表
dataMapList
.
add
(
map
);
}
return
dataMapList
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment