概述
# 由来
Java针对MS Office的操作的库屈指可数,比较有名的就是Apache的POI库。这个库异常强大,但是使用起来也并不容易。Hutool针对POI封装一些常用工具,使Java操作Excel等文件变得异常简单。
# 介绍
Hutool-poi是针对Apache POI的封装,因此需要用户自行引入POI库,Hutool默认不引入。到目前为止,Hutool-poi支持:
- Excel文件(xls, xlsx)的读取(ExcelReader)
- Excel文件(xls,xlsx)的写出(ExcelWriter)
# 使用
# 引入POI依赖
推荐引入poi-ooxml,这个包会自动关联引入poi包,且可以很好的支持Office2007+的文档格式
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
如果需要使用Sax方式读取Excel,需要引入以下依赖(POI-4.x以上这个非必须):
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.version}</version>
</dependency>
说明
hutool-4.x的poi-ooxml
版本需高于3.17
(别问我3.8版本为啥不行,因为3.17 > 3.8 )
hutool-5.x的poi-ooxml
版本需高于4.1.2
hutool-5.6.x支持poi-ooxml
版本高于5.0.0
xercesImpl
版本高于2.12.0
(非必须)
引入后即可使用Hutool的方法操作Office文件了,Hutool提供的类有:
ExcelUtil
Excel工具类,读取的快捷方法都被封装于此ExcelReader
Excel读取器,Excel读取的封装,可以直接构造后使用。ExcelWriter
Excel生成并写出器,Excel写出的封装(写出到流或者文件),可以直接构造后使用。
# 常见问题
部分用户使用POI模块时会提示:
You need to add dependency of 'poi-ooxml' to your project, and version >= 4.1.2
一般以下几个原因:
- 没有引入POI相关jar或引入版本太低
- 引入了多个版本的POI,导致包冲突了
- 没有引入关联依赖,这个具体要看下堆栈中的
Cause By
上次更新: 2023/10/26, 14:10:35