导出时直接设定OutputStream不就行了。

解决方案 »

  1.   

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    try {
                //打开文件
                WritableWorkbook book = Workbook.createWorkbook(new File(
                        "userinfo.xls"));
                //生成名为"用户信息"的工作表,参数0表示这是第一页
                WritableSheet sheet = book.createSheet("用户信息", 0);
                sheet.addCell(new jxl.write.Label(0, 0, "序号"));
                sheet.addCell(new jxl.write.Label(1, 0, "用户姓名"));
                sheet.addCell(new jxl.write.Label(2, 0, "用户编号"));
                sheet.addCell(new jxl.write.Label(3, 0, "性别"));
                sheet.addCell(new jxl.write.Label(4, 0, "肖像图片"));
                sheet.addCell(new jxl.write.Label(5, 0, "用户生日"));
                sheet.addCell(new jxl.write.Label(6, 0, "创建时间"));
                
                HttpSession session = request.getSession();
                List list=(List)session.getAttribute("result");
                Users user = new Users();
                for(int i=0;i<list.size();i++)
                {
                 user = (Users)list.get(i);
                 sheet.addCell(new jxl.write.Label(0, i+1, user.getId().toString()));
                    sheet.addCell(new jxl.write.Label(1, i+1, user.getUsername()));
                    sheet.addCell(new jxl.write.Label(2, i+1, user.getUsernumber()));
                    sheet.addCell(new jxl.write.Label(3, i+1, user.getSex()));
                    sheet.addCell(new jxl.write.Label(4, i+1, user.getImg()));
                    sheet.addCell(new jxl.write.Label(5, i+1, user.getBirthday()));
                    sheet.addCell(new jxl.write.Label(6, i+1, user.getTime()));
                }
                //写入数据并关闭文件
                book.write();
                book.close();        } catch (Exception e) {
                System.out.println(e);
            }
            response.sendRedirect("ok.jsp");
    }我没有用OutputStream,真的不知该怎么办?
      

  2.   

    生成文件的地址你是知道的,在action里面你转到下载页面,然后给个链接就可以下载了。。
    直接在action里面打开连接是做不到的,因为你的文件名是不一样的。
      

  3.   

    Workbook.createWorkbook有带OutputStream参数的方法。
      

  4.   

    刚才看到别人举了个例子,我也用了但是:
    我在JSP页面中使用下面的超连接,可是它老是说找不到'/upload/userinfo.xls'怎么办呀!!
    <a target='_blank' href='/upload/userinfo.xls'>保存</a> 
    求求哪位前辈帮帮我,小弟在这里叩谢了!!!!!!!
      

  5.   

    <a target='_blank' href="#" onclick=document.execCommand('Saveas',true,'*.xls')>
    保存</a>
    这样行不?
      

  6.   

    报错了:
    type Status reportmessage /userInfo/description The requested resource (/userInfo/) is not available.
      

  7.   

    终于解决了谢谢大家!!!!!!!!!
    原来是路径写错了!
    这样写就对了:
    <a target='_blank' href="/userInfo/upload/userinfo.xls" >点击这里选择保存位置</a>
      

  8.   

    File downloadFile = getFile("生成文件的地址");response.setContentType("application/excel");
              response.setHeader("Content-disposition",
                                 "attachment; filename=\"" + downloadFile.getName() +
                                 "\"");
              BufferedInputStream bufInStream = new BufferedInputStream(new
                  FileInputStream(downloadFile));
              BufferedOutputStream bufOutStream = new BufferedOutputStream(response.
                  getOutputStream());
              int readLine = 0;
              readLine = bufInStream.read();
              while (readLine != -1) {
                bufOutStream.write(readLine);
                readLine = bufInStream.read();
              }
              bufOutStream.close();
              bufInStream.close();
              downloadFile = null;