导出查询结果到excle
实现功能 输入查询结果 点击导出查询结果 导出到excle表。
前台代码为:
{id:'btn_export', text : '导出查询结果', iconCls : 'icon-print', handler : function() { $.messager.confirm('温馨提示','确认导出?',function(r) { if (r) { export_data=serializeForm($('#mysearch')); $('#downform').form('submit', { url : "<%=basePath%>dayrec/export", method : "post", onSubmit: function(param){ param.search =export_data; param.date_start=export_data.date_start; param.date_end=export_data.date_end; }, error : function() { $.messager.alert('温馨提示', '导出失败'); } }); } else { return; } }); }
此处涉及到了一个序列化form表单的方法。为:
//js方法:序列化表单 function serializeForm(form) { var obj = {}; $.each(form.serializeArray(), function(index) { if (obj[this['name']]) { obj[this['name']] = obj[this['name']] + ',' + this['value']; } else { obj[this['name']] = this['value']; } }); return obj; }
后台代码
@RequestMapping(value = "/export", method = RequestMethod.POST) public @ResponseBody String export(@ModelAttribute DayRecruit rec, String date_start,String date_end, HttpSession session, HttpServletResponse response) { Account account=this.getStaticAccount(); List<Object[]> dataset = dayRecruitService.export(rec,date_start,date_end,account); String[] headers = new String[]{"日期","所属公司","招聘企业","面试人数","入职人数","入职率(%)","备注"}; if(dataset == null || dataset.size() < 1){ return "没有查找到相应的数据,请刷新数据后重试"; } response.setContentType("application/vnd.ms-excel");//;charset=utf-8 response.setHeader("Content-Disposition", "attachment;filename=dayRecruit.xls"); response.setHeader("Pragma","No-cache"); response.setHeader ( "Cache-Control", "no-store"); try { OutputStream sos = response.getOutputStream(); ExportExcelsUtil.exportExcel(headers, dataset, sos);//如果不需要额外数据exportExcel(headers,dataset, sos) // ExportExcelsUtil.exportExcel(2,1,2,"用户信息",headers,dataset, sos);//如果不需要额外数据exportExcel(headers,dataset, sos) response.flushBuffer(); } catch (IOException e) { e.printStackTrace(); } return "成功导出"+dataset.size()+"条用户数据。"; }
其实和导出选中行操作过程一样的,区别是。导出所选行,前台传入是选中行的id.导出查询结果,前台传入的是查询条件,可以直接复用初始化数据时的方法。
具体参考
http://www.cnblogs.com/wenjieyatou/p/6120796.html