POI之匯入Excel
阿新 • • 發佈:2018-12-14
注:請根據實際的開發情況更改方法
1.匯入依賴
<!--poi--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.17</version> </dependency>
2.工具類方法(請根據實際應用更改)
/** * * @param filePath:檔案地址(D:/123.xls) * @param column:表格列數 */ public static void getDataFromExcel(String filePath,int column) { //判斷是否為excel型別檔案 if(!filePath.endsWith(".xls")&&!filePath.endsWith(".xlsx")) { System.out.println("檔案不是excel型別"); } FileInputStream fis =null; Workbook wookbook = null; try { //獲取一個絕對地址的流 fis = new FileInputStream(filePath); } catch(Exception e) { e.printStackTrace(); } try { //2003版本的excel,用.xls結尾 wookbook = new HSSFWorkbook(fis);//得到工作簿 } catch (Exception ex) { //ex.printStackTrace(); try { //2007版本的excel,用.xlsx結尾 wookbook = new XSSFWorkbook(fis);//得到工作簿 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //得到一個工作表 Sheet sheet = wookbook.getSheetAt(0); //獲得表頭 Row rowHead = sheet.getRow(0); //判斷表頭是否正確 if(rowHead.getPhysicalNumberOfCells() != column) { System.out.println("表頭的數量不對!"); } //獲得資料的總行數 int totalRowNum = sheet.getLastRowNum(); //要獲得屬性 String on=""; String name = ""; String age = ""; //獲得所有資料 for(int i = 1 ; i <= totalRowNum ; i++) { //獲得第i行物件 Row row = sheet.getRow(i); //獲得獲得第i行第0列 Cell cell = row.getCell((short)0); on = cell.getStringCellValue(); //獲得獲得第i行第1列 cell = row.getCell((short)1); name = cell.getStringCellValue(); //獲得獲得第i行第2列 cell = row.getCell((short)2); age = cell.getStringCellValue(); System.out.println("編號:"+on+",名字:"+name+",年齡:"+age); } }
3.測試
@Test
public void t1(){
getDataFromExcel("D:\\下載\\人員檔案列表.xls",3);
}
表格內容:
結果如下: