Apache POI 读写 Microsoft Office:Word、PPT、Excel

Apache 专栏收录该内容
6 篇文章 0 订阅

目录

Apache POI 概述与下载

HSLF and XSLF 操作 PPT

HSSF and XSSF 操作 Excel

XWPF 操作 Word 文档


Apache POI 概述与下载

1、Apache POI 是用 Java 编写的免费开源跨平台的 Java API,提供对 Microsoft Office 格式文档读和写的功能。

2、web 开发中,有一个经典的功能,就是数据的导入导出,特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作,而数据导出的格式一般是 EXCEL 或者 PDF。

3、主流操作 Excel 文件的开源工具有很多,用得比较多的就是 Apache POI 与 JExcel API。

4、Apache POI 是 Apache 的顶级项目,主页地址:https://poi.apache.org,本文以最新的 4.1.0 版本作为介绍。

5、所有版本的二进制包下载地址:https://archive.apache.org/dist/poi/release/bin/

6、并非每种格式都需要所有的 jar 包,针对不同的文件格式,POI 提供了不同的 Jar 包,下表显示了 POI 组件、Maven 存储库标记和项目的 JAR 文件之间的关系:

ComponentApplication typeMaven artifactId
POIFSOLE2 Filesystempoi
HPSFOLE2 Property Setspoi
HSSFExcel XLSpoi
HSLFPowerPoint PPTpoi-scratchpad
HWPFWord DOCpoi-scratchpad
HDGFVisio VSDpoi-scratchpad
HPBFPublisher PUBpoi-scratchpad
HSMFOutlook MSGpoi-scratchpad
DDFEscher common drawingspoi
HWMFWMF drawingspoi-scratchpad
OpenXML4JOOXMLpoi-ooxml plus either poi-ooxml-schemas or
ooxml-schemas and ooxml-security
XSSFExcel XLSXpoi-ooxml
XSLFPowerPoint PPTXpoi-ooxml
XWPFWord DOCXpoi-ooxml
XDGFVisio VSDXpoi-ooxml
Common SLPowerPoint PPT and PPTXpoi-scratchpad and poi-ooxml
Common SSExcel XLS and XLSXpoi-ooxml
Maven artifactIdPrerequisites(先决条件)JAR
poicommons-logging, commons-codec, commons-collections (since POI 3.15 beta 3), commons-math (since POI 4.0.0), log4jpoi-version-yyyymmdd.jar
poi-scratchpadpoipoi-scratchpad-version-yyyymmdd.jar
poi-ooxmlpoi, poi-ooxml-schemas, commons-compress (since POI 4.0.0)
For SVG support: batik-all, xml-apis-ext, xmlgraphics-commons
poi-ooxml-version-yyyymmdd.jar
poi-ooxml-schemasxmlbeanspoi-ooxml-schemas-version-yyyymmdd.jar
poi-examplespoi, poi-scratchpad, poi-ooxmlpoi-examples-version-yyyymmdd.jar
ooxml-schemasxmlbeansooxml-schemas-1.4.jar
ooxml-securityxmlbeans
For signing: bcpkix-jdk15on, bcprov-jdk15on, xmlsec, slf4j-api
ooxml-security-1.1.jar

org.apache.poi 可以直接从官网获取:https://poi.apache.org/components/index.html

POI Maven 依赖也可以从 Maven 中央仓库获取:https://mvnrepository.com/search?q=apache+poi

7、如果手动导包的方式,则可以从官网下载二进制 jar 包,如下所示,根据需要操作文档类型,导入合适的 jar 即可(lib、ooxml-lib 目录下是依赖包):

8、推荐使用 Maven 依赖,上面表格中已经很清楚了,操作什么类型的文档,则导入什么依赖;

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
        <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.1.0</version>
</dependency>

poi-ooxml 基本依赖了其它的组件,所以推荐导入 poi-ooxml 与 poi-scratchpad 即可:

9、不需要重复的造轮子,官网已经提供了详细的示例可以参考学习:

如果二进制 jar 包方式,则里面提供了一个 poi-examples-xxxx.jar 包

如果是 Maven 工程,则可以使用 poi-examples

也可以直接在线获取:https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/

HSLF and XSLF 操作 PPT

演示源码地址:https://github.com/wangmaoxiong/apache-poi-study/tree/master/src/main/java/com/wmx/poi/util

更多官网示例:https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/

HSSF and XSSF 操作 Excel

在线 API 演示源码:https://github.com/wangmaoxiong/apache-poi-study/tree/master/src/main/java/com/wmx/poi/test/excel

web 下载 excel 文件:https://github.com/wangmaoxiong/apache-poi-study/blob/master/src/main/java/com/wmx/controller/ExcelController.java

官网示例:https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/

XWPF 操作 Word 文档

官网示例文档:https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/examples/xwpf/usermodel/

单元测试演示源码地址:https://github.com/wangmaoxiong/apache-poi-study/tree/master/src/main/java/com/wmx/poi/word

post 请求文档下载在线演示源码:后端导出接口、POI Word工具类、前端页面

 

展开阅读全文
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页

打赏

蚩尤后裔

芝兰生于深林,不以无人而不芳。

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值