java 读取Excel文件

声明:

  java操作excel文件,常用  jxl  或 Apache poi  两种方式,

  主要区别:jxl不支持.xlsx,而poi支持.xlsx、.xls

jxl依赖Jar包:jxl.jar

poi依赖Jar包:

 <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>5.0.0</version>
 </dependency>

  

该文章主要介绍poi方式(XSSFWorkbook),poi方式提供HSSFWorkbookXSSFWorkbook两个实现类。

  • HSSFWorkbook : 这个类有读写.xls 格式和写入Microsoft Excel文件的方法。它与微软Office97-2003版本兼容。

  • XSSFWorkbook : 这个类有读写Microsoft Excel和OpenOffice的XML文件的格式.xls或.xlsx的方法。它与MS-Office版本2007或更高版本兼容。

简单来讲,区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对.xslx文件。

基本概念介绍:

  一个工作簿,可包含工作表,一个工作表可有多个行,一个行可有多个单元格

  工作簿 ----------XSSFWorkbook

  工作表 ----------XSSFSheet

  行---------------XSSFRow

  单元格-----------XSSFCell

代码实现

 1   public static void excelData(String filePath) {
 2     try {
 3       //创建工作簿 filePath="D:\\TEST\\temp\\abc.xlsx"
 4       XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(filePath));
 5       System.out.println("获取工作薄对象:" + xssfWorkbook);
 6       //读取第一个工作表
 7       XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
 8       System.out.println("工作表对象:" + sheet);
 9       //获取最后一行的num,即总行数。此处从0开始计数
10       int maxRow = sheet.getLastRowNum();
11       System.out.println("总行数:" + maxRow);
12       for (int row = 0; row <= maxRow; row++) {
13         //获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
14         int maxRol = sheet.getRow(row).getLastCellNum();
15         System.out.println("第" + row + "行,数据如下:");
16         for (int rol = 0; rol < maxRol; rol++) {
17           System.out.print(sheet.getRow(row).getCell(rol) + " ");
18         }
19         System.out.println();
20       }
21     } catch (Exception e) {
22       e.printStackTrace();
23     }
24   }

 

相关参考:

    https://www.jb51.net/article/168925.htm  【推荐】

    https://www.jianshu.com/p/853ab5523f29

    https://blog.csdn.net/Q_Q104926/article/details/108331915

    https://www.cnblogs.com/tk55/p/7453024.html    【jxl相关实现】

 

posted on 2021-08-26 18:29  幸福鳥  阅读(1472)  评论(0)    收藏  举报

导航