java

这段代码是可以直接使用的
public static List<Map<String, Object>> getRecordDataMap(
			ExcelParameter excelParameter) throws ApplicationException {
		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(excelParameter.getPath());
			HSSFWorkbook wb = new HSSFWorkbook(inputStream);
			HSSFSheet sheet = wb.getSheetAt(excelParameter.getSheetNo());
			int lastRowNum = sheet.getLastRowNum() + 1;
			List<Map<String, Object>> objectList = new ArrayList<Map<String, Object>>();
			// 对对象赋值;
			for (int excleRow = excelParameter.getStartRow(); excleRow < lastRowNum; excleRow++) {
				HSSFRow row = sheet.getRow(excleRow);
				Map<String, Object> map = new HashMap<String, Object>();
				/**
				 * key 为列索引 value 为 英文列
				 */
				Map<Short, String> needColumnMap = excelParameter
						.getNeedColumn();
				for (Entry<Short, String> entry : needColumnMap.entrySet()) {
					Short columnIndex = entry.getKey();
					String columnName = entry.getValue();
					HSSFCell cell = row.getCell(columnIndex);
					Object value = getCellValue(cell);
					map.put(columnName, value);
				}
				objectList.add(map);
			}
			return objectList;
		} catch (IOException e) {
			System.out
					.println("ExcelToObjectCommon.getRecordDataMap: 读取Excel异常"
							+ e.getMessage());
		} finally {
			try {
				inputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return null;
	}

	private static Object getCellValue(HSSFCell cell) {
		Object obj = null;
		switch (cell.getCellType()) {
		case HSSFCell.CELL_TYPE_STRING:
			obj = cell.getStringCellValue();
			break;
		case HSSFCell.CELL_TYPE_NUMERIC:
			obj = cell.getNumericCellValue();
			break;
		}
		return obj;

	}

你可能感兴趣的:(java)