最近在做一个项目,其中有部分是关于导出Excel,之前去的公司导出Excel都是已经封装好了的,现在从头开始写。用的是比较常用的POI,废话不多说。
用的框架是SSH,poi的版本是3.17,poi-3.17.jar
功能介绍:导出查询结果的报表,如下图为数据库随便填的数据,在页面上做查询,从页面上导出Excel
前端:
<a href="../export.do" class="easyui-linkbutton">导出</a>
后台:
//导出Excel
@RequestMapping("export")
@ResponseBody
public String createExcel(HttpServletResponse response) throws IOException {
//获取查询结果的数据,reportlist为别的方法查询出来的数据,格式为List<Object[]>,其实这里不管reportlist是什么数据格式,这里只要对其进行封装就行了
List<Object[]> newlist = reportlist;
//数据封装,这里的map之所以敢这样add是因为这里的add顺序和hql中的select字段顺序是一样的,总共就查询那么多字段
List<Map<String,Object>> solist = new ArrayList();
for(Object[] obj:newlist){
//每次循环都要重新new一个map,表示不同对象
Map<String,Object> map = new HashMap();
map.put("hospitalid", obj[0]);
map.put("idnumber",obj[1]);
map.put("name",obj[2]);
map.put("sex",obj[3]);
map.put("totalfee",obj[4]);
map.put("basic",obj[5]);
map.put("supplement",obj[6]);
map.put("otherfee",obj[7]);
map.put(&