关键代码如下:
public void importPostGroupQuality() throws Exception { //InputStream fis=new FileInputStream("E:\\员工年度考核.xls"); InputStream fis=this.path(); //解析出来的Excel的数据存放的List集合 //解析出来的Excel中的每一条数据封装的实体 try { //创建Excel工作薄 HSSFWorkbook hwb = new HSSFWorkbook(fis); //得到第一个工作表 HSSFSheet sheet = hwb.getSheetAt(0); HSSFRow row = null; // System.out.println("一共:"+hwb.getNu); //遍历该表格中所有的工作表,i表示工作表的数量 getNumberOfSheets表示工作表的总数 for(int i = 0; i < hwb.getNumberOfSheets(); i++) { sheet = hwb.getSheetAt(i); System.out.println("一共多少行:"+sheet.getPhysicalNumberOfRows()); //遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数 for(int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) { row = sheet.getRow(j); System.out.println("一共有列:"+row.getPhysicalNumberOfCells()); int total=row.getPhysicalNumberOfCells(); for(int a=0;a<total;a++){ if(getCellValue(row.getCell(a))!=""){ System.out.print(getCellValue(row.getCell(a))+":"); } } } } } catch (Exception e) { fis.close(); e.printStackTrace(); } } //判断从Excel文件中解析出来数据的格式 public String getCellValue(HSSFCell cell){ String value = null; //简单的查检列类型 switch(cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING://字符串 value = cell.getRichStringCellValue().getString(); break; case HSSFCell.CELL_TYPE_NUMERIC://数字 long dd = (long)cell.getNumericCellValue(); value = dd+""; break; case HSSFCell.CELL_TYPE_BLANK: value = ""; break; case HSSFCell.CELL_TYPE_FORMULA: value = String.valueOf(cell.getCellFormula()); break; case HSSFCell.CELL_TYPE_BOOLEAN://boolean型值 value = String.valueOf(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_ERROR: value = String.valueOf(cell.getErrorCellValue()); break; default: break; } return value; }
原文:http://my.oschina.net/zhongwenhao/blog/493023