从Excel文件读取数据表 Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据 表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:

import java.io.*; 

import jxl.*;

class ReadExcel{ 

    public void readExcel(String sourcefile){

	try{ 

		//构建Workbook对象, 只读Workbook对象 

		//直接从本地文件创建Workbook 

		//从输入流创建

		Workbook InputStream is = new FileInputStream(sourcefile); 

		Workbook rwb = Workbook.getWorkbook(is); 

	}catch (Exception e){ 

		e.printStackTrace(); 

	} 

	//获取第一张Sheet表 

	Sheet rs = rwb.getSheet(0); 

	//一旦得到了Sheet,就可以访问Excel Cell(术语:单元格) 

	//获取第一行,第一列的值 

	Cell c00 = rs.getCell(0, 0); 

	String strc00 = c00.getContents(); 

	//获取第一行,第二列的值 

	Cell c10 = rs.getCell(1, 0); 

	String strc10 = c10.getContents(); 

	//获取第二行,第二列的值 

	Cell c11 = rs.getCell(1, 1); 

	String strc11 = c11.getContents(); 

	System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType()); 

	System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType()); 

	System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType()); 

	//操作完成时,关闭对象,释放占用的内存空间 

	rwb.close(); 


    }

}

    如果仅仅是取得Cell的值,可以通过getContents()方法,它将任何类型的Cell值都作为一个字符串返回。如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。代码片段如下:

String strc00 = null;
  double strc10 = 0.00;
  Date strc11 = null;
  Cell c00 = rs.getCell(0, 0);
  Cell c10 = rs.getCell(1, 0);
  Cell c11 = rs.getCell(1, 1);
  if (c00.getType() == CellType.LABEL) {
   LabelCell labelc00 = (LabelCell) c00;
   strc00 = labelc00.getString();
  }
  if (c10.getType() == CellType.NUMBER) {
   NmberCell numc10 = (NumberCell) c10;
   strc10 = numc10.getValue();
  }
  if (c11.getType() == CellType.DATE) {
   DateCell datec11 = (DateCell) c11;
   strc11 = datec11.getDate();
  }
  System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : "
    + c00.getType());
  System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : "
    + c10.getType());
  System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : "
    + c11.getType());