简单方法:用servlet实现。客户端请求servlet,servlet中设置返回的类型为xls要求的格式,把jasperreport对象写入servlet的response中。
复杂方法:扩展jasperreport的APPLET,并对APPLET进行签名让其可以访问文件系统。服务器端也是使用servlet方法把jasperreport对象写入servlet的response中。在APPLET中写代码直接去加载jasperrepot对象,并调用java的文件对话框保存文件(本人是用这种方法实现的)。
具体实现不便告知,见谅。

解决方案 »

  1.   

    try
    {
             FileInputStream fis = new FileInputStream(new File(sFileName.toString()));
         response.setHeader("Content-Disposition:", "attachment;filename=" + sFileName );
         BufferedInputStream bis= new BufferedInputStream(fis);
         ServletOutputStream sos = response.getOutputStream();
         byte[] buffer = new byte[5000];
         response.setHeader("Content-Length:", String.valueOf (bis.available()));
         while (true) 
         {
            int bytesRead = bis.read(buffer, 0, buffer.length);
            if (bytesRead < 0)
             break;
            sos.write(buffer, 0, bytesRead);
         } 
         fis.close();
         sos.flush();
         sos.close();        
    }
            catch(Exception ex)
    {
             log.error("Read file:"+sFileName.toString()+"is  error!");
             ex.printStackTrace();
            }