天天看點

Java 讀取Excl檔案 (poi-3.13)

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 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