最近在公司做jsp导出excel表,把页面上数据 按每行 1对象放如list,调用处理list的
excel工厂类,动态生成excel表,将Excel对象直接写入到输出流,在jsp页面上加上
response.setHeader("ContentDisposition","attachment;filename="+filename+suffixName);
response.setContentType("application/vnd.ms-excel");
于是点击 导出按纽,弹出一对话框,打开,或则 保存,点击保存,把excel表保存到本地,可是我点击打开时候,并不是新弹出一窗口来显示excel表内容,而是在我本来的页面上直接跳转,来显示excel表内容!
现在我想 点击打开时候,新弹出一窗口来显示excel表内容,而我本来的页面不变!
大家有什么 好 方法??

解决方案 »

  1.   

    用window.open()打开一个新页面
    别通过submit() action post给自己的页面
      

  2.   

    1。利用java.io.File新建一个Excel文件test.xls
    2。利用JXL包往里面添加固定的列头
    3。取数据库数据,添加到excel单元格
    4。关闭各JXL操作excel的对象
    5。<script>self.location.replace("test.xls")</script>
      

  3.   

    不用按钮嘛,用链接多方便的<a href="excel.jsp" target="_blank">点击打开EXCEL文档</a>
      

  4.   

    为了更真实点,可以改成:
    <a href="excel.jsp" target="_blank" style="cursor:hand;">点击打开EXCEL文档</a>
      

  5.   

    Alleo()兄  说的是要我先保存一个excel文件,再打开吧,
    但是现在 我是直接 将Excel对象直接写入到输出流,
      

  6.   

    没想好,我的是用XML做的。
    你把Excel对象直接写入到输出流,还想用JSP来显示,感觉不大现实哦。
      

  7.   

    在jsp页面上添加<iframe src="new.jsp" style="display:none"/>,new.jsp是一个空白页面。点击ecxel按钮时执行js代码,通过new.jsp而不是本页面去提交你的excel请求.这样excel就不会在本页面内打开了。
      

  8.   

    我觉得还是当点击的时候给他保存一下,如果是保存就给他用下载的方式下到本地,如果是打开就用js给他在新的窗口打开,然后当他关闭或者每个固定的时间去调用service去删除这些文件,文件夹可以用时间命名