天天看點

JAVA讀取xls檔案和xlsx檔案

###所需jar包:

由于在csdn上下載下傳需要50積分(積分是csdn固定規則确定的,無法修改)是以提供百度網盤下載下傳位址:

https://pan.baidu.com/s/1r01c8zv44FQND91o8VmsLg

###xls和xlsx檔案:office excel2007以後版本為xlsx,以前的版本為xls

###讀取xlsx檔案:

InputStream is = new FileInputStream(file);
		XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
		// 擷取每一個工作薄
		for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
			XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
			if (xssfSheet == null) {
				continue;
			}
			// 擷取目前工作薄的每一行
			for (int rowNum = 0; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
				XSSFRow xssfRow = xssfSheet.getRow(rowNum);
				if (xssfRow != null) {
					XSSFCell one = xssfRow.getCell(0);
					//讀取第一列資料
					XSSFCell two = xssfRow.getCell(1);
					//讀取第二列資料
					XSSFCell three = xssfRow.getCell(2);
					//讀取第三列資料
					//需要轉換資料的話直接調用getValue擷取字元串
				}
			}
		}
		//轉換資料格式
	private String getValue(XSSFCell xssfRow) {

		if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) {
			return String.valueOf(xssfRow.getBooleanCellValue());
		} else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) {
			return String.valueOf(xssfRow.getNumericCellValue());
		} else {
			return String.valueOf(xssfRow.getStringCellValue());
		}
	}
           

###讀取xls檔案:

InputStream is = new FileInputStream(file);
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
		// 擷取每一個工作薄
		for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
			HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
			if (hssfSheet == null) {
				continue;
			}
			// 擷取目前工作薄的每一行
			for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
				HSSFRow hssfRow = hssfSheet.getRow(rowNum);
				if (hssfRow != null) {
					HSSFCell one = hssfRow.getCell(0);
					//讀取第一列資料
					HSSFCell two = hssfRow.getCell(1);
					//讀取第二列資料
					HSSFCell three = hssfRow.getCell(2);
					//讀取第三列資料
					//需要轉換資料的話直接調用getValue擷取字元串
				}
			}
		}
		// 轉換資料格式
	private String getValue(HSSFCell hssfCell) {
		if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
			return String.valueOf(hssfCell.getBooleanCellValue());
		} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
			return String.valueOf(hssfCell.getNumericCellValue());
		} else {
			return String.valueOf(hssfCell.getStringCellValue());
		}
	}
           

###注意上述代碼需要excel中有列名·