用jxl做了个导出excel
点击导出按钮,选择保存,这个很正常
但是选择打开,也能打开.但是打开之后,这个web程序就好像死掉了一样,点哪里都没有反映了,就被卡死了一样,有人遇到这个问题么?

解决方案 »

  1.   

    应该是程序有问题。分步检查吧
    可以先试试能否将excel保存在服务器上,即检查导出excel是否正确
    再看看打开、保存部分
      

  2.   

    那是因为你往客户端输出流的代码有问题
    解决方案:
    把导出的Excel在服务器生成文件,让客户端去下载
      

  3.   

    close了没?  执行了吗?
      

  4.   

    差不多找到问题是出在哪里了
    但是没有解决
    出问题的页面是在iframe中的
    如果把那个下载的页面直接从浏览器打开,而不被包含在iframe中,就什么问题也没有
    有人知道应该如何配置吗?
    我的struts.xml中下载配置如下
    <action name="toExcel" class="boss-action" method="toExcel">
                <result name="excel" type="stream">
    <param name="contentType">application/vnd.ms-excel</param>
    <param name="inputName">excelStream</param>
    <param name="contentDisposition">filename="export.xls"</param>
    <param name="bufferSize">1024</param>
    </result>
    </action>
      

  5.   

    可以不在xml中配置,直接由后台打开试试,参考代码如下
     HttpServletResponse response = ServletActionContext.getResponse();
      
       //设定输出文件头编码问UTF-8
      response.setCharacterEncoding("UTF-8");  excelName=new String(excelName.getBytes("GBK"),"ISO-8859-1");//解决文件中文名称问题   response.setHeader("Content-disposition", "attachment; filename="+excelName
        + ".xls");//文件名如果为中文必须转码,否者可能造成两种情况,一文件名为乱码,二无法打开文件
      // 定义输出类型
      response.setContentType("application/vnd.ms-excel");
      OutputStream os = response.getOutputStream();//定义一个输出流