这篇文章主要介绍JavaExcelApi如何用于在Excel格式的文件中读写数据。
1:Reading Spreadsheets (读电子表格)
JavaExcelApi能从当前的文件系统中或者从一个输入流中读取电子表格;当我们读取数据时。
这第一步要做的是创造一个Workbook(工作薄)向这样:
import java.io.File;
import java.util.Date;
import jxl.*;
...
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
2。当你访问这个workbook时,你就可以访问各个sheets(工作表)象这样:
Sheet sheet = workbook.getSheet(0);
记住第一个表的下标是0,依次第二个是1,第三个是2;当然你可以用表的名称来访问表;
3。有了上面的两步,你就可以访问cell(单元格)了;利用一个方便的函数:getContents()
象这样:
Cell a1 = sheet.getCell(0,0); //访问A1
Cell b2 = sheet.getCell(1,1); //访问b2
Cell c2 = sheet.getCell(2,1); //访问c2
String stringa1 = a1.getContents(); //取得A1
String stringb2 = b2.getContents();
String stringc2 = c2.getContents();
// Do stuff with the strings etc
...
然而,上面的做法是不管cell中的数据类型的,返回的都是Srting;
但我们知道excel中有许多的其他类型;假如我们要按照类型存取cell中的内容时:
比如作为一数据类型存入;上面的方法就行不通的:而下面的代码在你确定你的电子表格有单元格在相应的位置;
String stringa1 = null;
double numberb2 = 0;
Date datec2 = null;
Cell a1 = sheet.getCell(0,0);
Cell b2 = sheet.getCell(1,1);
Cell c2 = sheet.getCell(2,1);
if (a1.getType() == CellType.LABEL)
{
LabelCell lc = (LabelCell) a1;
stringa1 = lc.getString();
}
if (b2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) b2;
numberb2 = b2.getValue();
}
if (c2.getType() == CellType.DATE)
{
DateCell dc = (DateCell) c2;
datec2 = c2.getDate();
}
// Do stuff with dates and doubles
...
最后:别望了关闭工作薄;
workbook.close();