讀取excel表格數據



例如,我們要讀取的表格如圖,



操作excel表格需要的jar包,下載地址:excel表格需要的jar包下載


1、獲得Workbook,可以解決現在excel中以xls和xlsx兩種格式的excel表格,代碼如下:

 String path = "C:\test.xls" ;//excel表格的地址字符串
String fileType = path.substring(path.lastIndexOf(".") + 1,
path.length());
InputStream stream = new FileInputStream(path);
Workbook wb = null;
if (fileType.equals("xls")) {
wb = (Workbook) new HSSFWorkbook(stream);
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(stream);
} else {
wb = null;
}



2、獲得Sheet對象

/**
* 獲得Sheet對象
*/
sheet = book.getSheetAt(0);

3、獲得第0行標題內容

Cell cell1, cell2, cell3;//這里只是3列做實驗,實際開發中,可根據實際情況寫
// 獲取左上角的單元格

Row row =sheet.getRow(0) ;
row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
cell1 = row.getCell(0);

4、獲得excel中的最后一行的行號數

int total = sheet.getLastRowNum() ;//獲得excel中的最后一行的行號數

5、獲取每一行的單元格

// 獲取每一行的單元格
row = sheet.getRow(i) ;

6、獲取每一行每一列的數據

for (int i = 2; i < total; i++) {
// 獲取每一行的單元格
row = sheet.getRow(i) ;
for(int j=0;j<3;j++) {
/**
* POI操作Excel時偶爾會出現Cannot get a text value from a numeric
* cell的異常錯誤。
* 異常原因:Excel數據Cell有不同的類型,當我們試圖從一個數字類型的Cell讀取出一個字符串並寫入數據庫時,
* 就會出現Cannot get a text value from a numeric cell的異常錯誤。
* 此異常常見於類似如下代碼中:row.getCell(0).getStringCellValue();
* 解決辦法:先設置Cell的類型,然后就可以把純數字作為String類型讀進來了:
* if(row.getCell(0)!=null){
* row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
* stuUser.setPhone(row.getCell(0).getStringCellValue()); }
*/
row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);
}
cell1 = row.getCell(0) ;// 第一列
cell2 = row.getCell(1);//第二列
cell3 = row.getCell(2);// 第三列

String one = cell1.getStringCellValue();//第一列數據
String two = cell2.getStringCellValue();//第二列數據
String three = cell3.getStringCellValue();//第三列數據
}



補充:上面提供的jar包不全,會導致下面兩個的異常:


解決異常的jar包地址:解決下面異常的jar包-excel2003和2007的jar包都有

   

第一個:

執行到這一樣時:new XSSFWorkbook(stream);
    
異常:

Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
 這個異常時因為缺少jar包,jar包的名字是:xmlbeans-2.3.0.jar
    
第二個異常:

 異常:
 Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet

這個是因為,使用POI中的XSSFWorkbook操作excel2007(xlsx)的時候拋出的異常:
解決方案:
poi包中默認不支持excel2007,如果需要解析,則需要引入poi-ooxml-schemas-xx.jar包。

引入此包后,可能還會有個異常,原因是找不到dom4j的jar包。
因為poi-ooxml-schemas-xx.jar需要依賴dom4j-xxx.jar包











注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com