前台:
//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;
}