Java POI匯入Excel檔案

weixin_30788239發表於2020-04-05

  今天在公司需要做個匯入Excel檔案的功能,所以研究了一下,參考網上的一些資料總算是做出來了,在此記錄一下防止以後忘記怎麼弄。

  本人用的是poi3.8,所以需要的JAR包如下:

    poi-3.8.jar 

    poi-excelant-3.8-20120326.jar

    poi-ooxml-3.8-20120326.jar

    poi-ooxml-schemas-3.8-20120326.jar

    poi-scratchpad-3.8-20120326.jar

    xmlbeans-2.3.0.jar

  附上百度雲盤的共享地址,JAR包來自apache官方:http://pan.baidu.com/s/1bnzzheR

  附上方法詳情,方法來自csdn的一個部落格,具體地址我給忘了,反正不是原創,不過在其基礎上修改了下,程式碼更易讀,為了讓第一次做這個的人弄明白,所以註釋部分寫的詳細了一些,實際用的時候可以刪掉,此方法可以相容xls和xlsx兩種格式,其他的未經過測試:

public String importExcel() {
		try{
			InputStream inputStream = new FileInputStream("C:\\Users\\Administrator\\Desktop\\test.xls");
			//根據輸入流獲取工作簿(整個excel檔案)
			Workbook workbook = WorkbookFactory.create(inputStream);
			//獲取第一個工作表(excel檔案中第一個工作表)
			Sheet sheet = workbook.getSheetAt(0);
			//獲取行迭代器
			Iterator<Row> rowIterator = sheet.rowIterator();
			while(rowIterator.hasNext()){
				//獲取當前行
				Row row = (Row) rowIterator.next();
				//獲取單元格迭代器
				Iterator<Cell> colIterator = row.cellIterator(); 
				while (colIterator.hasNext()){
					//獲取當前單元格
					Cell cell = (Cell) colIterator.next();
					//列印列號和行號,從0開始,Excel中A1單元格列印出來是0:0,B2單元格列印出來是1:1
					System.out.print(cell.getRowIndex() + ":" + cell.getColumnIndex() + " ");
					//根據單元格的資料型別獲取資料
					switch (cell.getCellType()){
						case Cell.CELL_TYPE_STRING:
							System.out.println(cell.getRichStringCellValue().getString());
							break;
						case Cell.CELL_TYPE_NUMERIC:
							if (DateUtil.isCellDateFormatted(cell)){
								System.out.println(cell.getDateCellValue());
							}else{
								System.out.println(cell.getNumericCellValue());
							}
							break;
						case Cell.CELL_TYPE_BOOLEAN:
							System.out.println(cell.getBooleanCellValue());
							break;
						case Cell.CELL_TYPE_FORMULA:
							System.out.println(cell.getCellFormula());
							break;
						default:
							System.out.println("null");
					}
				}
			}
		} catch (Exception e){
			e.printStackTrace();
		}
		return "";
	}

 

轉載於:https://www.cnblogs.com/aotian/p/4556945.html

相關文章