Commit 19bba5a7 by zhangxingmin

push

parent 10181b40
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment