常用的解析Excel文件的工具库主要有JXL和POI,其中使用POI的相对更多一些。
上面是对于JXL和POI的一些简单对比,并不全面,更多更详细的信息可以参考各自的官方网站:
JXL的官方网站:http://jexcelapi.sourceforge.net/
POI的官方网站:http://poi.apache.org/
Jar包的下载地址:
JXL :
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/jexcelapi_2_6_12.zip/download
POI :
https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.16-20170419.zip
Maven坐标引用:
JXL的坐标信息
<dependency>
<groupId>jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6</version>
</dependency>
POI的坐标信息(如果需要解析.xlsx文件,后面一个依赖必须加入)
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<!-- 解析Excel 2007及以上版本文件必须加上下面的 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
对于Excel 2003(.xls后缀文件),现在使用情况相对较少,更多的是使用Excel 2007/2010(.xlsx后缀文件),为了支持对Excel 2007及以上版本的解析,推荐采用POI库(当然,如果不想使用POI,可以先将Excel 2007/2010另存为Excel 2003的版本,然后再使用JXL进行解析)。
不管是JXL,还是POI,它们在解析Excel文件上的思想流程都是差不多的,先读取工作簿 → 工作表 → 行 → 单元格。
对于POI,可以表示为“Workbook → Sheet → Row → Cell”;
对于JXL,可以表示为“Workbook → Sheet → Cell[]→ Cell”,其中“Cell[]”相当于POI中的“Row”;也可以表示为“Workbook → Sheet → Cell”,通过Sheet直接获取Cell,只要给出相应行号和列号,即通过坐标定位。
一个Excel文件就是一个Workbook,而一个Workbook中可以包含多个Sheet,一个Sheet中可以有多行Row,一行中又可以包含多个单元格Cell,具体的内容都是在单元格Cell中。