jxl 写 excel

1.写excel类

package  net.blogjava.chenlb;

import  java.io.IOException;
import  java.io.OutputStream;
import  java.util.List;

import  jxl.Workbook;
import  jxl.write.Label;
import  jxl.write.WritableSheet;
import  jxl.write.WritableWorkbook;
import  jxl.write.WriteException;
import  jxl.write.biff.RowsExceededException;

/**
 * Jxl 的 Excel写数据器.
 * 
@author  chenlb 2007-10-29 上午10:39:31
 
*/
public   class  JxlExcelWriter {
    
    
/**
     * 
@param  datas 封装着Object[]的列表, 一般是String内容.
     * 
@param  title 每个sheet里的标题.
     
*/
    
public   void  writeExcel(OutputStream out, List datas, String[] title) {
        
if (datas  ==   null ) {
            
throw   new  IllegalArgumentException( " 写excel流需要List参数! " );
        }
        
try  {
            WritableWorkbook workbook 
=  Workbook.createWorkbook(out);
            WritableSheet ws 
=  workbook.createSheet( " sheet 1 " 0 );
            
int  rowNum  =   0 ;     // 要写的行
             if (title  !=   null ) {
                putRow(ws, 
0 , title); // 压入标题
                rowNum  =   1 ;
            }
            
for ( int  i = 0 ; i < datas.size(); i ++ , rowNum ++ ) { // 写sheet
                Object[] cells  =  (Object[]) datas.get(i);
                putRow(ws, rowNum, cells);    
// 压一行到sheet
            }
            
            workbook.write();
            workbook.close();    
// 一定要关闭, 否则没有保存Excel
        }  catch  (RowsExceededException e) {
            System.out.println(
" jxl write RowsExceededException:  " + e.getMessage());
        } 
catch  (WriteException e) {
            System.out.println(
" jxl write WriteException:  " + e.getMessage());
        } 
catch  (IOException e) {
            System.out.println(
" jxl write file i/o exception!, cause by:  " + e.getMessage());
        }
    }

    
private   void  putRow(WritableSheet ws,  int  rowNum, Object[] cells)  throws  RowsExceededException, WriteException {
        
for ( int  j = 0 ; j < cells.length; j ++ ) { // 写一行
            Label cell  =   new  Label(j, rowNum,  "" + cells[j]);
            ws.addCell(cell);
        }
    }
}


2.使用

     public   void  testWriteExcel() {
        List datas 
=   new  ArrayList();
        String[] data 
=  { " 1 " " chenlb " };
        datas.add(data);
        
try  {
            OutputStream out 
=   new  FileOutputStream( new  File( " doc/chenlb.blogjava.net.xls " ));
            JxlExcelWriter jxlExcelWriter 
=   new  JxlExcelWriter();
            jxlExcelWriter.writeExcel(out, datas, 
new  String[] { " Id " " name " });
            out.close();
        } 
catch  (FileNotFoundException e) {
            
//  TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch  (IOException e) {
            
//  TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值