excel导出设计思路
原创
©著作权归作者所有:来自51CTO博客作者chushiyunaaa的原创作品,请联系作者获取转载授权,否则将追究法律责任
excel导出是很常见的功能,说不上复杂度吧,但是有点绕,所以有时不太好理解。
步骤
无论再复杂的excel导出,都有基本的步骤。
1、查询到数据。
2、根据字典转换数据(因为不像页面可以转,所以导出前要转好)。
3、转换list中的实体数据为entityMap数据,方便之后一一对应。(模拟代码见后面)
写标题。
写数据。
因为数据已经转换为map,所以这里for循环columns,从map中根据key找对应值即可。
列名、列值
heads 设置为一个数组,columns也是一个数组,他们一一对应。
private String[] heads;
private String[] columns;
至于采用什么赋值方式看自己了,可以固定写到配置文件中,也可以动态的。
实体类转换为map代码
网络上到处都是的通用代码:
public static Map<String, Object> entityToMap(Object obj) {
Map<String, Object> params = new HashMap<String, Object>(0);
try {
PropertyUtilsBean propertyUtilsBean = new PropertyUtilsBean();
PropertyDescriptor[] descriptors = propertyUtilsBean.getPropertyDescriptors(obj);
for (int i = 0; i < descriptors.length; i++) {
String name = descriptors[i].getName();
if (!"class".equals(name)) {
params.put(name, propertyUtilsBean.getNestedProperty(obj, name));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return params;
}