java 报表 可以直接打开,或下载

public String exportReport() {
        
        HttpServletRequest request = ServletActionContext.getRequest();
        String a = request.getParameter("a");
        
        //第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        //第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet("图书类别信息");
        //第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        
        HSSFRow row = sheet.createRow((int)0);
        row.createCell((short)0).setCellValue(a);
        
        HSSFRow row1 = sheet.createRow((int)1);
        //第四步,创建单元格,并设置值表头  设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //创建一个居中格式
         
        HSSFCell cell = row1.createCell((short)0);
        
        cell.setCellValue("编号"); cell.setCellStyle(style);
        cell = row1.createCell((short)1);
        cell.setCellValue("类别名称"); cell.setCellStyle(style);
        cell = row1.createCell((short)2);
        cell.setCellValue("可借天数"); cell.setCellStyle(style);
        cell = row1.createCell((short)3);
        cell.setCellValue("罚款金额"); cell.setCellStyle(style);
     
        //第五步,写入实体数据 实际应用中这些数据从数据库得到,
        
       
//        if(booktype.getStatType()==null)
//        {
//         temandhumInfo.setStatType("0");
//        }
        
        List<Booktype> booktypelist = booktypeBiz.getBooktypeAll();
        for (int i = 0; i < booktypelist.size(); i++)
        {
            row1 = sheet.createRow((int)i+2);
            Booktype info = booktypelist.get(i);
       
        //第四步,创建单元格,并设置值
        row1.createCell((short)0).setCellValue(info.getId());
        row1.createCell((short)1).setCellValue(info.getTypeName());
        row1.createCell((short)2).setCellValue(info.getBydays());
        row1.createCell((short)3).setCellValue(info.getFine());
//        cell = row1.createCell((short)4);
//        cell.setCellValue(info.getCollecttime());
        }
        
        //第六步,将文件存到指定位置
//        try
//        {
//            FileOutputStream fout = new FileOutputStream("E:/"+tableName+"监测表.xls");
//            wb.write(fout);
//            fout.close();
//        } catch (Exception e)
//        {
//            e.printStackTrace();
//        }
        
        //弹出直接打开或者下载(可以选择文件下载保存路径)
        HttpServletResponse response = ServletActionContext.getResponse();
        response.reset();  
        response.setCharacterEncoding("UTF-8");  
        response.setContentType("application/vnd.ms-excel");  //保证不乱码  
        try
        {
            response.setHeader("Content-Disposition","attachment;" + " filename=" + new String(a.getBytes(), "ISO-8859-1"));
           
        }
        catch (UnsupportedEncodingException e1)
        {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }  
        try  
        {  
            ByteArrayOutputStream oss =new  ByteArrayOutputStream();
            OutputStream os = response.getOutputStream();
            wb.write(oss);  
              
            byte temp[] = oss.toByteArray();  
            ByteArrayInputStream in = new ByteArrayInputStream(temp);  
            int n = 0;      
            while ((n = in.read(temp)) >0) {      
                 os.write(temp, 0, n);      
             }    
            os.flush();  
            os.close();  
        } catch(Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }
    
    
    
    


    public Booktype getBooktype() {
        return booktype;
    }

    public void setBooktype(Booktype booktype) {
        this.booktype = booktype;
    }

    public BooktypeBiz getBooktypeBiz() {
        return booktypeBiz;
    }

    public void setBooktypeBiz(BooktypeBiz booktypeBiz) {
        this.booktypeBiz = booktypeBiz;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值