版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/u010046908/article/details/50581867
最近做項目遇到了讀取Excel資料到資料庫做資料的初始化。于是找一個。發現(poi-3.13)可以解決問題。可以解析兩種格式(xlsx和xls)
以下是實作的步驟
1.下載下傳poi3.13包,位址(http://poi.apache.org/download.html#POI-3.13)
2.學習APi。
接下來是還是demo來說明問題吧:
1.準備Excel檔案:
2.項目的目錄結構:
代碼實戰:
/**
* 讀取Excel資料
* @param file
*/
public List<Student> readExcel(File file){
List<Student> list = new ArrayList<Student>();
try {
InputStream inputStream = new FileInputStream(file);
String fileName = file.getName();
Workbook wb = null;
if(fileName.endsWith("xls")){
//解析xls格式
wb = new HSSFWorkbook(inputStream);
}else if(fileName.endsWith("xlsx")){
//解析xlsx格式
wb = new XSSFWorkbook(inputStream);
}
//第一個工作表
Sheet sheet = wb.getSheetAt(0);
//第一行的行号
int firstRowIndex = sheet.getFirstRowNum();
//最後一行的行号
int lastRowIndex = sheet.getLastRowNum();
for(int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex ++){
//擷取每一行
Row row = sheet.getRow(rIndex);
Student student = new Student();
if(row != null){
//擷取第一例
int firstCellIndex = row.getFirstCellNum();
int lastCellIndex = row.getLastCellNum();
for(int cIndex = firstCellIndex; cIndex < lastCellIndex; cIndex ++){
switch (cIndex) {
case 0:
student.setNo1(row.getCell(0).toString());
break;
case 1:
student.setNo2(row.getCell(1).toString());
break;
case 2:
student.setNo3(row.getCell(2).toString());
break;
case 3:
student.setNo4(row.getCell(3).toString());
break;
case 4:
student.setNo5(row.getCell(4).toString());
break;
case 5:
student.setNo6(row.getCell(5).toString());
break;
case 6:
student.setNo7(row.getCell(6).toString());
break;
default:
break;
}
}
}
list.add(student);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
結果展示:
就這樣了,有問題可以聯系我QQ:1561281670