用java操作Excel文件的方法有很多,这里使用Java excel API。(下载地址:http://sourceforge.net/projects/jexcelapi/files/)
一.从Excel文件读取数据表
1.创建Workbook(术语:工作薄):
InputStream is = new FileInputStream(new File("test.xls"));
jxl.Workbook rwb = Workbook.getWorkbook(is);
2.通过工作薄来访问Excel Sheet(术语:工作表):
Sheet rs = rwb.getSheet(0);
注意:既可能通过Sheet的名称来访问它,也可以通过下标来访问它。下标从0开始,就像数组一样。
3.得到了Sheet后通过它来访问Excel Cell(术语:单元格):
Cell c00 = rs.getCell(0, 0); //获取第一列、第一行的单元格,第一个参数是列号,第二个参数是行号
String strc00 = c00.getContents(); //获取单元格的值,强转成字符串型
Cell c10 = rs.getCell(0,1);
Cell c11 = rs.getCell(1,1);
如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。
if (c00.getType() == CellType.LabelCell) {
LabelCell labelc00 = (LabelCell)c00;
String strc00 = labelc00.getString();
}
if (c10.getType() == CellType.NUMBER) {
NmberCell numc10 = (NumberCell)c10;
double strc10 = numc10.getValue();
}
if (c11.getType() == CellType.DATE) {
DateCell datec11 = (DateCell)c11;
Date strc11 = datec11.getDate();
}
4.释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。
rwb.close();
二,Workbook类提供的方法
1.获得工作薄(Workbook)中工作表(Sheet)的个数
int getNumberOfSheets()
2.返回工作薄(Workbook)中工作表(Sheet)对象数组
Sheet[] getSheets()
3.返回正在使用的API的版本号,好像是没什么太大的作用
String getVersion()
三,Sheet接口提供的方法
1. String getName() //获取Sheet的名称
2. int getColumns() //获取Sheet表中所包含的总列数
3. Cell[] getColumn(int column) //获取某一列的所有单元格,返回的是单元格对象数组
4. int getRows() //获取Sheet表中所包含的总行数
5. Cell[] getRow(int row) //获取某一行的所有单元格,返回的是单元格对象数组
参考:http://www.360doc.com/content/09/1211/11/8667_10857505.shtml