【ajax】【jxl】导出Excel时网页弹框下载

问题:
使用jxl(即Java Excel API导出Excel时网页没有弹框下载
原因:
使用了ajax提交
解决方案:
不用ajax提交;
改用下面方法:
【ajax】【jxl】导出Excel时网页弹框下载


顺便提一下,网页中导出Excel的两种方法:
无论使用poi还是使用jxl导出excel都需要用到流
一种是outputstrean,另一种fileoutputstream

第一种:如果想要弹出保存的提示框必须加入下列三句
response.setContentType("application/vnd.ms-excel; charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename="+filename);
response.setCharacterEncoding("utf-8");
OutputStream os=response.getOutputStream();
在使用第一种的时候,我用的ajax请求。导致excel无法导出,最后我直接请求可以导出(document.location.href="${pageContext.request.contextPath}/tran/export.do?")
原因是:ajax也用到了response.getWriter()方法 要将 数据结果回传,这里 我虽然 放弃了 回传的写入流writer 参数, 但是ajax还是会默认的去掉用,把流已经占用了,当然返回不了任何东西了。
第二种:
action中使用
FileOutputStream fos=new FileOutputStream(file);
此时可以使用ajax请求,在导出成功后返回文件路径,在页面中使用window.open(path);即可打开导出的excel文件

参考网址: