|
case HSSFCell.CELL_TYPE_BLANK: strCell = ""; break; default: strCell = ""; break; } if (strCell.equals("") || strCell == null) { return ""; } if (cell == null) { return ""; } return strCell; }
/** * 获取单元格数据内容为日期类型的数据 * @param cell Excel单元格 * @return String 单元格数据内容 */ private String getDateCellValue(HSSFCell cell) { String result = ""; try { int cellType = cell.getCellType(); if (cellType == HSSFCell.CELL_TYPE_NUMERIC) { Date date = cell.getDateCellValue(); result = (date.getYear() + 1900) + "-" + (date.getMonth() + 1) + "-" + date.getDate(); } else if (cellType == HSSFCell.CELL_TYPE_STRING) { String date = getStringCellValue(cell); result = date.replaceAll("[年月]", "-").replace("日", "").trim(); } else if (cellType == HSSFCell.CELL_TYPE_BLANK) { result = ""; } } catch (Exception e) { system.out.println("日期格式不正确!"); e.printStackTrace(); } return result; }
public static void main(String[] args) { try { //对读取Excel表格标题测试 InputStream is = new FileInputStream("C:\\Excel表格测试.xls"); ExcelReader excelReader = new ExcelReader(); String[] title = excelReader.readExcelTitle(is); system.out.println("获得Excel表格的标题:"); for (String s : title) { system.out.print(s + " "); }
//对读取Excel表格内容测试 InputStream is2 = new FileInputStream("C:\\Excel表格测试.xls"); Map<Integer,String> map = excelReader.readExcelContent(is2); system.out.println("获得Excel表格的内容:"); for (int i=1; i<=map.size(); i++) { system.out.println(map.get(i)); } } catch (FileNotFoundException e) { system.out.println("未找到指定路径的文件!"); e.printStackTrace(); } } }通过该类提供的方法就能读取出Excel表格中的数据,数据读取出来了,其他的,对这些数据进行怎样的操作,要靠你另外写程序去实现,因为该类只提供读取Excel表格数据的功能。
说明:在该类中有一个getStringCellValue(HSSFCell cell)方法和一个getDateCellValue(HSSFCell cell)方法,前一个方法用于读取那些为字符串类型的数据,如果你的Excel表格中填写的是日期类型的数据,则你应该在readExcelContent(InputStream is)方法里调用getDateCellValue(HSSFCell cell)方法,因为若调用getStringCellValue(HSSFCell cell)方法读取日期类型的数据将得到的是一个浮点数,这很可能不符合实际要求。
|