1.jsp:
<span> <input type="button" id="exportBtn" class="but" name="query" value=" 导出" /></span>
<iframe id="iframeExport" style="display:none"></iframe>
2.js:
$("#exportBtn").click(function(){
importExcelByIfream();
});
var importExcelByIfream = function() {
var iframe = document.getElementById("iframeExport");
iframe.src=me.getPath()+"/rest/achievement/exportTable?param1=param1¶m2=param2";
}
3.java:
@RequestMapping("/exportTable")
public void exportTable(HttpServletRequest request,HttpServletResponse response) throws Exception{
String param1= request.getParameter("param1");
String param2= request.getParameter("param2");
String fileName="导出excel.xls";
try {
HSSFWorkbook workbook = biz.exportTable(param1, param2);
if (workbook!=null) {
String userAgent = request.getHeader("User-Agent");
if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {// IE
fileName = URLEncoder.encode(fileName, "UTF-8");
} else if (null != userAgent && -1 != userAgent.indexOf("Mozilla")) { // 火狐,chrome等
fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
}
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-disposition", "attachment; filename="+fileName);
workbook.write(response.getOutputStream());
}else {
response.reset();
String info="导出数据出错,原因未知";
ServletOutputStream os = response.getOutputStream();
response.setHeader("Content-type", "text/html;charset=UTF-8");
os.write(("<script>").getBytes("UTF-8"));
os.write(("alert('"+info+"');").getBytes("UTF-8"));
os.write(("</script>").getBytes("UTF-8"));
os.close();
}
} catch (Exception e) {
e.printStackTrace();
response.reset();
String info="导出数据出错, "+e.getMessage().replaceAll("'", "“");
ServletOutputStream os = response.getOutputStream();
response.setHeader("Content-type", "text/html;charset=UTF-8");
os.write(("<script>").getBytes("UTF-8"));
os.write(("alert('"+info+"');").getBytes("UTF-8"));
os.write(("</script>").getBytes("UTF-8"));
os.close();
}
}