前台:
//getExcelXML有一个JSON对象的配置,配置项看了下只有title配置,为excel文档的标题
var data = $('#dg').datagrid('getExcelXml', { title: 'datagrid import to excel' }); //获取datagrid数据对应的excel需要的xml格式的内容
//组装form提交 ajax不支持下载
var form = $("<form>"); //定义一个form表单
form.attr('style', 'display:none'); //在form表单中添加查询参数
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', __path + "/action/exportExcel");
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'data');
input1.attr('value', data);
$('body').append(form); //将表单放置在web中
form.append(input1); //将查询参数控件提交到表单上
form.submit();
后台:
/*** 验收结果导出为Excel* @author fangguitang@dnion.com* @version 2016-2-4 上午2:50:17*/
@RequestMapping("/exportExcel")
public void exportExcel(@RequestParam("data") String data,HttpServletRequest request,HttpServletResponse response){response.reset();try {request.setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//构造文件名String fn = sdf.format(new Date()) + ".xls";try {response.setHeader("Content-disposition", "attachment; filename="+java.net.URLEncoder.encode(fn, "UTF-8")+"");response.setContentType("application/msexcel;charset=utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}PrintWriter out;try {out = response.getWriter();out.write(data);out.flush();out.close();} catch (IOException e) {e.printStackTrace();}return;
}