最简单的Java操作Excel方法

最简单的Java操作Excel方法

目前用Java操作Excel文件,有好几种方法:
1.用Excel另存为.html、.xml等存储格式,使用自己的程序来分析,用MIME值application/vnd.ms-excel指定Excel打开。
2.创建.csv文件作为操作格式,Excel能存储和读取,但是会损失信息。
3.使用开源的Java Excel API(http://www.andykhan.com/jexcelapi/),来操作Excel。

其中最简单是Java Excel API。 

import  java.io. * ;
import  jxl. * ;
import  jxl.write. * ;

// 1.建立一个新Excel文件。
try {
    
// 创建一个WritableWorkbook,输出目标d:/test.xsl。
    
// 也可以直接输入ServletOutputStream中,由浏览器接受并调用Excel打开。
    
// 如:"Workbook.createWorkbook(response.getOutputStream());"。
    jxl.write.WritableWorkbook book  =  Workbook.createWorkbook( new  File( " d:/test.xsl " ));
    
// 在位置0建立一个Sheet。
    jxl.write.WritableSheet sheet  =  book.createSheet( " Sheet 1 " 0 );
    
// 在单元格坐标(0,0)添加一个LABEL。
    sheet.addCell( new  jxl.write.Label( 0 0 " new Value " ));
    
// LABEL可以被WritableCellFormat格式化。
    jxl.write.WritableCellFormat format  =   new  jxl.write.WritableCellFormat( new  jxl.write.WritableFont(WritableFont.ARIAL,  12 , WritableFont.BOLD,  false ,Underlinestyle.NO_UNDERLINE, jxl.format.Colour.RED));
    sheet.addCell(
new  jxl.write.Label( 1 0 " new Value " , format));
    
// 格式化输入一个NUMBER值。
    sheet.addCell( new  jxl.write.Number( 1 1 9.99 new  jxl.write.WritableCellFormat( new  jxl.write.NumberFormat( " #.# " ))));
    
// 格式化输入一个日期值。
    sheet.addCell( new  jxl.write.DateTime( 2 0 new  java.util.Date(),  new  jxl.write.WritableCellFormat( new  jxl.write.DateFormat( " yyyy-MM-dd hh:mm:ss " ))));
    
// 把内存中内容写入目标。
    book.write();
    
// 关闭Workbook释放资源。
    book.close();}
catch (Exception e){
    e.printStackTrace();}


// 2.读取一个已经存在的Excel文件。
try {
    
// 创建一个只读的Workbook
    jxl.Workbook book  =  Workbook.getWorkbook( new  FileInputStream( " d:/test.xsl " ));
    
// 查看Sheet的数量是否大于0个。
     if (book.getNumberOfSheets() > 0 )
        
// 取得第一个Sheet,这也可以传入Sheet的名字来取得。
        Sheet sheet  =  book.getSheet( 0 );
    
// 输出Sheet的名称。
    System.out.println(sheet.getName());
    
// 判断sheet的行数大于3。
     if (sheet.getRows() > 3 )
        
// 判断sheet的列数至少有1列。
         if (sheet.getColumns() > 1 )
            
// 取得第3行第1个Cell,每个Cell用坐标(列数,行数)来定位。
            Cell cell  =  rs.getCell( 0 2 );
    Cell[] cells
= null ;
    
// 以数组形式取得第1列所有单元格。
    cells = getColumn( 0 );
    
// 判断下第3个单元格和cell是否相等。
    System.out.println(cells[ 2 ] == cell);
    
// 以数组形式取得第3行所有单元格。
    cells = getRow( 2 );
    
// 判断下第1个单元格和cell是否相等。
    System.out.println(cells[ 0 ] == cell);
    
// 取得cell的值,作为字符串返回。
    String str  =  cell.getContents();
    
// 如果要保留cell的类型
    
// 常用的有LABEL(字符)、NUMBER(数字)、DATE(日期)
     if (cell.getType()  ==  CellType.LABEL)
    
// 返回字符串
        ((LabelCell)cell).getString();
    
else   if (cell.getType()  ==  CellType.NUMBER)
    
// 返回数值
        ((NumberCell)cell).getValue();
    
else   if (cell.getType()  ==  CellType.NUMBER)
    
// 返回日期
        ((DateCell)cell).getDate();


// 3.更改Workbook的内容。
    
// 上面的book是只读的,如果要更改Excel,还要生成一个WritableWorkbook。
    
// 方法的第一个参数是写入目标,第二个参数是一个普通Workbook。
    jxl.write.WritableWorkbook wBook  =  Workbook.createWorkbook( new  File( " d:/test1.xsl " ), book);
    
// 取得WritableWorkbook中的Sheet,做为数组返回。
    Sheet[] sheets  =  wBook.getSheets();
    
// 取数组中的第一个Sheet。
    jxl.write.WritableSheet wSheet  =  (WritableSheet)sheets[ 0 ];
    jxl.write.WritableCell wCell 
=  wSheet.getWritableCell( 0 2 );
    
// 判断Cell类型,写入数据
     if (wCell.getType()  ==  CellType.LABEL)
        ((Label)wCell).setString(
" new Value! " );
    
else   if (wCell.getType()  ==  CellType.NUMBER)
        ((NumberCell)wCell).setValue(
33.3 );
    
// 把内存中内容写入目标。
    wBook.write();
    
// 关闭WritableWorkbook释放资源。
    wBook.close();}

    
// 关闭Workbook释放资源。
        book.close();}
catch (Exception e){
    e.printStackTrace();}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值