poi写excel文件

public void   createReport(ResultSet  rs)  
{  
 try  
 {  
  ResultSetMetaData   rsmd   =   rs.getMetaData();  
  //获得数据集的列数  
  int numbercols=rsmd.getColumnCount();  
  rs.last();  
        //将数据集游标置为最后一行,获得数据集的行数  
  int numberrows=rs.getRow();  
  //生成一个HSSFWorkbook对象,进行操作  
  HSSFWorkbook   wb=new   HSSFWorkbook();  
  //设置显示的字体以及相关的样式  
  HSSFFont   font   =   wb.createFont();  
  font.setFontHeightInPoints((short)8);  
  font.setFontName("Courier   New");  
  font.setItalic(false);  
  font.setStrikeout(false);  
         
          //设置标题栏单元格的样式  
  HSSFCellStyle   cellHeadStyle=wb.createCellStyle();  
        cellHeadStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);  
        cellHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);  
        cellHeadStyle.setBorderLeft((short)1);  
        cellHeadStyle.setBorderRight((short)1);  
        cellHeadStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);  
        cellHeadStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);  
        cellHeadStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
        //设置数据行的字体以及以及相关的对齐方式  
        HSSFCellStyle   cellDataStyle=wb.createCellStyle();  
        cellDataStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);  
        cellDataStyle.setFont(font);  
     
        //新建一个HSSFSheet对象  
        HSSFSheet   sheet=wb.createSheet("new sheet");  
   
        //处理标题行,建立单元格,得到相关表字段名称写入到相关的单元格  
        HSSFRow   row=sheet.createRow((short)0);  
        for(int   i=1;i<=numbercols;i++)  
        {  
         HSSFCell   cellHead   =   row.createCell((short)(i-1));  
            cellHead.setCellStyle(cellHeadStyle);  
            cellHead.setCellValue(rsmd.getColumnLabel(i));  
        }  
        //重新定位数据行  
        rs.beforeFirst();  
        int j=1;  
        //将每一行的数据写入到相应的单元格  
        while(rs.next()   &&   j<=numberrows)  
        {  
         HSSFRow   row1=sheet.createRow((short)j);  
         for(int   k=1;k<=numbercols;k++)  
         {  
          HSSFCell cellData = row1.createCell((short)(k-1));  
          cellData.setCellStyle(cellDataStyle);  
          //设置编码类型,用于支持中文的输出  
                cellData.setEncoding(HSSFCell.ENCODING_UTF_16);  
                /*判断原来数据的格式,然后以相同的数据格式写入单元格,以方便用户  
                          可以进行一定的统计工作,日期类型和字符串类型使用String类型进行输出  
                          */  
                if(rsmd.getColumnType(k)==java.sql.Types.INTEGER)  
                 cellData.setCellValue(rs.getInt(k));  
                else if(rsmd.getColumnType(k)==java.sql.Types.VARCHAR)  
                 cellData.setCellValue(rs.getString(k));  
                else if(rsmd.getColumnType(k)==java.sql.Types.REAL)  
                 cellData.setCellValue(rs.getDouble(k));  
                else  
                 cellData.setCellValue(rs.getString(k));  
         }  
         j++;  
   
        }  
        //利用输出流将数据集写入到硬盘的文件中,操作结束后,关闭输出流  
        FileOutputStream   fileOut   =   new   FileOutputStream("c://reportExport.xls");  
        wb.write(fileOut);  
        fileOut.close();  
 }catch(Exception e){
  System.out.println("Exception:"+e.getMessage());
 }  
}   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值