POI(读取execl文件)
07版读取数据
public readExecl() { //输入流 path:文件地址 InputStream is = new FileInputStream(path); //创建工作簿 WorkBook workBook = new WorkBook(is); //得到工作表1 Sheet sheet = workBook.getSheetAt(0); //读取有多少行 int rowNum = sheet.getPhysicalNumberOfRows(); for(int i = 0; i < rowNum ; i++) { //读取行 Row row = sheet.getRow(i); if(row != null) { //读取多少列 int cellNum = row.getPhysicalNumberOfCells(); for(int j = 0; j < cellNum ; j++) { //读取列 Cell cell = row.getCell(j); if(cell != null) { //需要判断该列为什么类型,这里暂时写一个函数,后续补齐 String n = judgeType(cell.getCellType) } } } } }
判断类型
public String judeType(String cellType) { switch(cellType) {
String cellValue ; case HSSFCell.CELL_TYPE_STRING://字符 cellValue= cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN://布尔 cellValue = String.valueof(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_BLANK://空 break; case HSSFCell.CELL_TYPE_NUMERIC://数字(日期、普通数字) if(HSSFDateUtil.isCellDateFormatted(cell))//日期{ Date date = cell.getDateCellValue(); cellValue = new DateTime(date).toString("yyyy-MM-dd"); } else { //普通数字,为防止数字过长可以转换为字符串输出 cell.setCellType(HSSFCell.CELL_TYPS_STRING); cellValue = cell.toString(); } break; case HSSFCell.CELL_TYPE_ERROR://数据类型错误 break; }
return cellValue; }
浙公网安备 33010602011771号