代码拉取完成,页面将自动刷新
77
解决导出类型为 class,但数据集为 map 时的映射问题。
已合并
Workbook workbook = ExcelExportUtil.exportExcel(params, clazz, dataset);
目前情况:当 clazz 位置,也就是 ExcelExportUtil.exportExcel
方法第二个参数为 class 时,数据集必须为对象集合。原因及优化代码如下
问题出现代码位置 cn.afterturn.easypoi.excel.export.base.ExportCommonService#getExcelField
public Object getCellValue(ExcelExportEntity entity, Object obj) throws Exception {
Object value;
// 如果在导出的时候传入的参数是 class ,这里的数据对象又是 map 的时候,则无法映射。通过根据 class 对象组装 ExcelExportEntity 的时候将对象的字段名作为数据的 key 来解决
if (obj instanceof Map) {
value = ((Map<?, ?>) obj).get(entity.getKey());
} else {
// 考虑直接用对象导出只能每次获取值的办法
if (entity.getMethods() == null && entity.getMethod() == null) {
value = PoiPublicUtil.getParamsValue(entity.getKey().toString(), obj);
} else {
value = entity.getMethods() != null ? getFieldBySomeMethod(entity.getMethods(), obj)
: entity.getMethod().invoke(obj, new Object[]{});
}
}
····
····
}
解决代码见提交记录