用poi 第二次导出文件遇到的问题

用poi做报表统计,输出excel文件
用以下三句就可以向客户端弹出一个打开或者是保存文件的对话框

java 代码
  1. response.setContentType("Application/msexcel");   
  2. response.setHeader("Content-disposition","attachment; filename=filename.xls");   
  3. wb.write(response.getOutputStream());  
注: wb是    HSSFWorkbook wb = new HSSFWorkbook();
在用户第一次保存文件之后,第二次再保存的时候,会出现: “未指明的错误”
分析之后得出以下结论:
当调用 response.setContentType   和 response.setHeader 之后,response已经变成了二进制流,不是以前的text/html 了,所以第二次会报错, 此错误在win 2000之下出现,win XP 和 win2003不会出错,其它系统没有测试。
后来想到解决方案:
既然导出的时候将本页面里的document的类型改变了,就给它找了一个替罪羊, 在页面里加入了一个不可见的iframe
  1. "downFrame" src="" style="width: 0px;height: 0px;display: none;">  
然后在点击按钮提交的时候,将下载交给iframe
  1. document.downFrame.location="checkExport.do?flag=export......."  

 

    这样,就改变的是iframe的 response类型,本页面就没有影响了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值