代码里组织excel提供下载,浏览器弹出下载对话框,选择打开的时候为什么是在IE里面内嵌的,我现在是希望能够单独打开一个Excel文件

解决方案 »

  1.   

            servletResponse
                .setContentType("application/octet-stream;charset=GBK");
            servletResponse.setHeader("Content-Disposition", "filename=\""
                + URLEncoder.encode("sfyx.xls", "GBK") + "\"");
            byte[] b = ExportExcel(head, result).toByteArray();
            ServletOutputStream out = servletResponse.getOutputStream();
            out.write(b);
            out.flush();
            out.close();
            servletResponse.flushBuffer();其中ExportExcel(head, result)方法是把建好的excel文件转化成byte[]
        public static ByteArrayOutputStream ExportExcel(ArrayList head, ArrayList dataList) {
        ......
       
          ByteArrayOutputStream targetFile = new ByteArrayOutputStream();
          WritableWorkbook wwb = Workbook.createWorkbook(targetFile);
        ......      wwb.write();
          wwb.close();
          return targetFile;
      

  2.   

    我这这样设置就可以了,  response.setContentType("text/html;charset=ISO-8859-1");
    String strFileName = "测试.xls";
    strFileName=new String(strFileName.getBytes("gbk"),"iso-8859-1");
          response.setHeader("Content-disposition", "attachment;filename="+strFileName);
          
          workBook.write(response.getOutputStream());
          response.getOutputStream().flush();
          response.getOutputStream().close();