Java解析Excel内容的方法
本文实例讲述了Java解析Excel内容的方法。分享给大家供大家参考。具体实现方法如下:
importjava.io.File; importjava.io.FileInputStream; importjava.io.InputStream; importjava.util.ArrayList; importorg.apache.poi.hssf.usermodel.HSSFWorkbook; importorg.apache.poi.ss.usermodel.Cell; importorg.apache.poi.ss.usermodel.Row; importorg.apache.poi.ss.usermodel.Sheet; importorg.apache.poi.ss.usermodel.Workbook; importorg.apache.poi.xssf.usermodel.XSSFWorkbook; publicclassTest{ /** *@paramargs */ publicstaticvoidmain(String[]args){ meetquery("403","e:\\Excel\\1火灾三级预案处置流程.xlsx"); } privatestaticArrayList<MeetBean>meetquery(Stringlevel,Stringfilename){ ArrayList<MeetBean>list=newArrayList<MeetBean>(); try{ Filefile=newFile(filename); InputStreamis=newFileInputStream(file); Workbookworkbook=null;//一个workbook对象,就是一个Excel文件 Sheetsheet=null;//sheet页,因excel总有多个sheet页,需要判断具体取值哪一个 Rowrow1=null;//Sheet页数中的某一行 intcolNum=0;//Sheet总行数 Cellcell=null;//第一列内容 Cellcell1=null;//第二列内容 Stringmeetname=null;//要点名称 Stringmeetid=null;//要点编号 Stringmeethine=null;//要点提示内容 Stringmeettime=null;//处置时间 MeetBeanmeet=null; //判断文件是什么格式2003/2007根据版本不同处置对象也不同 if(filename.endsWith(".xls")){ workbook=newHSSFWorkbook(is);//Excel2003 }elseif(filename.endsWith(".xlsx")){ workbook=newXSSFWorkbook(is);//Excel2007 }else{ returnnull; } //判断处理那个Sheet页,共有三个用户,分别处置不同的处置要点 if(level=="401"){ //值班站长的处置要点内容、处置提示 sheet=workbook.getSheetAt(0); colNum=sheet.getLastRowNum();//总行数不包括标题内容 System.out.println("共有:"+colNum+"行"); for(inti=3;i<=colNum;i++){ meet=newMeetBean(); row1=sheet.getRow(i);//要解析的行数 cell=row1.getCell((short)2);//要解析要点名称的列数 cell1=row1.getCell((short)4);//要解析要点提示内容的列数 if(cell!=null&&cell1!=null){ meetname=cell.getStringCellValue(); meethine=cell1.getStringCellValue(); meetid="YD"+i; //如果处置要点名称为空,则是循环到了最后一个处置要点,则返回。。。 if(!meetname.equals("")){ Stringintstr=String .valueOf((int)(Math.random()*10+1));//生成1-10的随机数 //如果是1-9随机数,则需要自动补零时间格式为00:00:00 if(intstr.length()<2){ Stringmin="0"+intstr; meettime="00:"+min+":00"; }else{ meettime="00:"+intstr+":00"; } meet.setMeetid(meetid);//处置要点编号 meet.setMeetname(meetname);//处置要点名称 meet.setMeethint(meethine);//处置0要点提示内容 meet.setMeettime(meettime);//处置时间 meet.setMeetLevel("401");//处置要点级别 list.add(meet); }else{ returnlist; } }else{ returnlist; } } }elseif(level=="402"){ sheet=workbook.getSheetAt(1);//OCC调度员的处置要点内容、处置提示 colNum=sheet.getLastRowNum();//总行数不包括标题内容 System.out.println("共有:"+colNum+"行"); for(inti=3;i<=colNum;i++){ meet=newMeetBean(); row1=sheet.getRow(i);//要解析的行数 cell=row1.getCell((short)2);//要解析要点名称的列数 cell1=row1.getCell((short)4);//要解析要点提示内容的列数 if(cell!=null&&cell1!=null){ meetname=cell.getStringCellValue(); meethine=cell1.getStringCellValue(); meetid="YD"+i; //如果处置要点名称为空,则是循环到了最后一个处置要点,则返回。。。 if(!meetname.equals("")){ Stringintstr=String .valueOf((int)(Math.random()*10+1));//生成1-10的随机数 //如果是1-9随机数,则需要自动补零时间格式为00:00:00 if(intstr.length()<2){ Stringmin="0"+intstr; meettime="00:"+min+":00"; }else{ meettime="00:"+intstr+":00"; } meet.setMeetid(meetid);//处置要点编号 meet.setMeetname(meetname);//处置要点名称 meet.setMeethint(meethine);//处置要点提示内容 meet.setMeettime(meettime);//处置时间 meet.setMeetLevel("402");//处置要点级别 list.add(meet); }else{ returnlist; } }else{ returnlist; } } }elseif(level=="403"){ sheet=workbook.getSheetAt(2);//控制中心的处置要点内容、处置提示 colNum=sheet.getLastRowNum();//总行数不包括标题内容 System.out.println("共有:"+colNum+"行"); intnameInt=0; inthineInt=0; for(intj=0;j<=colNum;j++){ row1=sheet.getRow(3);//要解析的行数只有第三行中存在处置要点名称,提示内容 cell=row1.getCell((short)1);//要解析要点名称的列数 cell1=row1.getCell((short)2);//要解析要点提示内容的列数 } for(inti=3;i<=colNum;i++){ meet=newMeetBean(); row1=sheet.getRow(i);//要解析的行数 cell=row1.getCell((short)1);//要解析要点名称的列数 cell1=row1.getCell((short)2);//要解析要点提示内容的列数 if(cell!=null&&cell1!=null){ meetname=cell.getStringCellValue(); meethine=cell1.getStringCellValue(); meetid="YD"+i; //如果处置要点名称为空,则是循环到了最后一个处置要点,则返回。。。 if(!meetname.equals("")){ Stringintstr=String .valueOf((int)(Math.random()*10+1));//生成1-10的随机数 //如果是1-9随机数,则需要自动补零时间格式为00:00:00 if(intstr.length()<2){ Stringmin="0"+intstr; meettime="00:"+min+":00"; }else{ meettime="00:"+intstr+":00"; } meet.setMeetid(meetid);//处置要点编号 meet.setMeetname(meetname);//处置要点名称 meet.setMeethint(meethine);//处置要点提示内容 meet.setMeettime(meettime);//处置时间 meet.setMeetLevel("403");//处置要点级别 list.add(meet); }else{ returnlist; } }else{ returnlist; } } } is.close(); }catch(Exceptione){ e.printStackTrace(); } returnlist; } }
希望本文所述对大家的java程序设计有所帮助。