Java使用芋泥包读取Excel文档代码分享

  

项目需要解析Excel文档获取数据,就在网上找了一些资料,结合自己这次使用,写下心得:

  

1, maven项目需加入如下依赖:

        & lt; dependency>   & lt; groupId> org.apache.poi   & lt; artifactId> poi   & lt; version> 3.10 -final   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.apache.poi   & lt; artifactId> poi-ooxml   & lt; version> 3.10 -final   & lt;/dependency>      

直接上测试类,类里有完善的注释:

        包shindo.Java;      进口java.io.FileInputStream;   进口java.io.InputStream;   进口java.util.ArrayList;   进口并不知道;      进口org.apache.poi.hssf.usermodel.HSSFCell;   进口org.apache.poi.hssf.usermodel.HSSFRow;   进口org.apache.poi.hssf.usermodel.HSSFSheet;   进口org.apache.poi.hssf.usermodel.HSSFWorkbook;   进口org.apache.poi.ss.usermodel.Cell;   进口org.apache.poi.xssf.usermodel.XSSFCell;   进口org.apache.poi.xssf.usermodel.XSSFRow;   进口org.apache.poi.xssf.usermodel.XSSFSheet;   进口org.apache.poi.xssf.usermodel.XSSFWorkbook;      公开课ExcelUtil {      公共静态void main (String [] args) {   字符串路径=" D: \ \ IDE \ \ workspace-Neon \ \ Java \ \ src \ \ refund.xls”;   尝试{   List比;结果=new ExcelUtil () .readXls(路径);   System.out.println (result.size ());   for (int i=0;我& lt;result.size ();我+ +){   List模型=result.get(我);   system . out。println (“orderNum:”+ model.get(0) +”——比;orderAmount:“+ model.get (1));   }      }捕捉(异常e) {   e.printStackTrace ();   }   }/* *   *   * @Title: readXls   * @Description:处理xls文件   * @param @param路径   * @param @return   * @param @throws异常设定文件   * @return List比;返回类型   * @throws   *   *从代码不难发现其处理逻辑:   * 1。先用InputStream获取excel文件的io流   * 2,然后穿件一个内存中excel的文件HSSFWorkbook类型对象,这个对象表示了整个excel文件。   * 3。对这个excel文件的每页做循环处理   * 4。对每页中每行做循环处理   * 5。对每行中的每个单元格做处理,获取这个单元格的值   * 6。把这行的结果添加到一个列表数组中   * 7。把每行的结果添加到最后的总结果中   * 8。解析完以后就获取了一个List祝辞类型的对象了   *   */私人List比;{readXls (String路径)抛出异常   InputStream是=new FileInputStream(路径);//HSSFWorkbook标识整个excel   HSSFWorkbook HSSFWorkbook=new HSSFWorkbook(是);   List比;结果=new ArrayList在();   int大?hssfWorkbook.getNumberOfSheets ();//循环每一页,并处理当前循环页   for (int numSheet=0;numSheet & lt;大小;numSheet + +) {//HSSFSheet标识某一页   HSSFSheet HSSFSheet=hssfWorkbook.getSheetAt (numSheet);   如果(hssfSheet==null) {   继续;   }//处理当前页,循环读取每一行   for (int rowNum=1;rowNum & lt;=hssfSheet.getLastRowNum ();rowNum + +) {//HSSFRow表示行   HSSFRow HSSFRow=hssfSheet.getRow (rowNum);   int minColIx=hssfRow.getFirstCellNum ();   int maxColIx=hssfRow.getLastCellNum ();   ListrowList=new ArrayList ();//遍历改行,获取处理每个细胞元素   for (int colIx=minColIx;colIx & lt;maxColIx;colIx + +) {//HSSFCell表示单元格   HSSFCell细胞=hssfRow.getCell (colIx);   如果(细胞==null) {   继续;   }   rowList.add (getStringVal(细胞));   }   result.add (rowList);   }   }   返回结果;   }/* *   *   * @Title: readXlsx   * @Description:处理Xlsx文件   * @param @param路径   * @param @return   * @param @throws异常设定文件   * @return List比;返回类型   * @throws   */私人List比;{readXlsx (String路径)抛出异常   InputStream是=new FileInputStream(路径);   XSSFWorkbook XSSFWorkbook=new XSSFWorkbook(是);   List比;结果=new ArrayList在();//循环每一页,并处理当前循环页   (XSSFSheet XSSFSheet: xssfWorkbook) {   如果(xssfSheet==null) {   继续;   }//处理当前页,循环读取每一行   for (int rowNum=1;rowNum & lt;=xssfSheet.getLastRowNum ();rowNum + +) {   XSSFRow XSSFRow=xssfSheet.getRow (rowNum);   int minColIx=xssfRow.getFirstCellNum ();   int maxColIx=xssfRow.getLastCellNum ();   List

Java使用芋泥包读取Excel文档代码分享