1. 程式人生 > >POI的匯入功能(EXCEL)

POI的匯入功能(EXCEL)

SSM專案結合POI匯入
需要的jar包如下:(XSSFWorkbook 和HSSFWorkbook 都適用)
在這裡插入圖片描述

InputStream inputStream = file.getInputStream(); //此處file指的是springmvc的MultipartFile
HashMap<String, String> map = new HashMap<String, String>();  //用於資料
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);	//XSSF...接收的xlsx格式
//HSSFWorkbook workbook = new HSSFWorkbook(inputStream);  //HSSF..接收的是xls格式
XSSFSheet sheet = workbook.getSheetAt(0);  //得到第一個sheet頁
for (Row row : sheet) {     //便利sheet頁的“每一行”  ==row
	int num = row.getRowNum();  //得到每一行的行號,從0開始
	// 剔除標題
	if (num == 0) {
		if ("".equals(row.getCell(1)) || row.getCell(1) == null) {

    		return "錯誤的的Excel檔案!";
    	} else if ("標準名稱".equals(row.getCell(1)
    			.getStringCellValue())) {
    		continue;   //跳出本次迴圈
    	} else {
    
    		return "請選擇正確的Excel檔案!";
    	}
    }
    for (int i = 0; i < row.getLastCellNum(); i++) {//row.getLastCellNum()得到總列數,即此處迴圈是 便利每一行的  每一列,i指的是列數     row.getCell(i)得到單元格的數值
    
    	if (row.getCell(i) == null || "".equals(row.getCell(i))) {
    		sb.append("第" + row.getRowNum() + "內容不可為空, ");
    	} else {   // 將第row行的第i列 的cell中的 內容當做字串處理
    		row.getCell(i).setCellType(XSSFCell.CELL_TYPE_STRING);//設定格式為String型別
    		map.put("" + i + "", row.getCell(i)
    				.getStringCellValue());
    	}
    }
    validityStd.setA100(map.get("0"));   
    validityStd.setA298(map.get("1"));   
    validityStd.setSearchNo(validity.getSearchNo());   //編號
    int m = validityStdMapper.insert(validityStd);//存入資料庫
    if (m < 1) {
    	return "新增失敗";
    }
}