目前POI的最新版本是 3.16-beta2,该版本是测试版本,稳定版本是 3.15,下载地址为 Apache POI (http://poi.apache.org/download.html)。

一、目录结构

目录结构如下:

二、详细介绍

官方地址:https://poi.apache.org/overview.html。

Maven artifactId

Prerequisites

JAR

Notes

poi-excelant

poi,poi-ooxml

poi-excelant-version.jar

用于读取表格、写入表格等一系列操作表格所用到的包

Component Map

The Apache POI distribution consists of support for many document file formats. This support is provided in several Jar files. Not all of the Jars are needed for every format. The following tables show the relationships between POI components, Maven repository tags, and the project's Jar files.

Component

Application type

Maven artifactId

Notes

POIFS

OLE2 Filesystem

poi

Required to work with OLE2 / POIFS based files

HPSF

OLE2 Property Sets

poi

HSSF

Excel XLS

poi

For HSSF only, if common SS is needed see below

HSLF

PowerPoint PPT

poi-scratchpad

HWPF

Word DOC

poi-scratchpad

HDGF

Visio VSD

poi-scratchpad

HPBF

Publisher PUB

poi-scratchpad

HSMF

Outlook MSG

poi-scratchpad

DDF

Escher common drawings

poi

HWMF

WMF drawings

poi-scratchpad

OpenXML4J

OOXML

poi-ooxml plus either poi-ooxml-schemas orooxml-schemas and ooxml-security

See notes below for differences between these options

XSSF

Excel XLSX

poi-ooxml

XSLF

PowerPoint PPTX

poi-ooxml

XWPF

Word DOCX

poi-ooxml

XDGF

Visio VSDX

poi-ooxml

Common SL

PowerPoint PPT and PPTX

poi-scratchpad and poi-ooxml

SL code is in the core POI jar, but implementations are in poi-scratchpad and poi-ooxml.

Common SS

Excel XLS and XLSX

poi-ooxml

WorkbookFactory and friends all require poi-ooxml, not just core poi

This table maps artifacts into the jar file name. "version-yyyymmdd" is the POI version stamp. You can see what the latest stamp is on the downloads page.

Maven artifactId

Prerequisites

JAR

poi

commons-logging, commons-codec, commons-collections, log4j

poi-version-yyyymmdd.jar

poi-scratchpad

poi

poi-scratchpad-version-yyyymmdd.jar

poi-ooxml

poi, poi-ooxml-schemas

poi-ooxml-version-yyyymmdd.jar

poi-ooxml-schemas

xmlbeans

poi-ooxml-schemas-version-yyyymmdd.jar

poi-examples

poi, poi-scratchpad, poi-ooxml

poi-examples-version-yyyymmdd.jar

ooxml-schemas

xmlbeans

ooxml-schemas-1.3.jar

ooxml-security

xmlbeans For signing: bcpkix-jdk15on, bcprov-jdk15on, xmlsec, slf4j-api

ooxml-security-1.1.jar

Note:Apache commons-collections4 was added as a dependency in POI 3.15 beta 3.

poi-ooxml requires poi-ooxml-schemas. This is a substantially smaller version of the ooxml-schemas jar (ooxml-schemas-1.3.jar for POI 3.14 or later, ooxml-schemas-1.1.jar for POI 3.7 up to POI 3.13, ooxml-schemas-1.0.jar for POI 3.5 and 3.6). The larger ooxml-schemas jar is normally only required for development. Similarly, the ooxml-security jar, which contains all of the classes relating to encryption and signing, is normally only required for development. A subset of its contents are in poi-ooxml-schemas. This JAR is ooxml-security-1.1.jar for POI 3.14 onwards and ooxml-security-1.0.jar prior to that.

The OOXML jars require a stax implementation, but now that Apache POI requires Java 6, that dependency is provided by the JRE and no additional stax jars are required. The OOXML jars used to require DOM4J, but the code has now been changed to use JAXP and no additional dom4j jars are required. By the way, look at this FAQ if you have problems when using a non-Oracle JDK.

The ooxml schemas jars are compiled with Apache XMLBeans 2.3, and so can be used at runtime with any version of XMLBeans from 2.3 or newer. Wherever possible though, we recommend that you use XMLBeans 2.6.0 with Apache POI, and that is the version now shipped in the binary release packages.

总结:按照需要导入jar包及相关依赖jar包。

poi-3.15.jar (excel文件生成需要)

poi-examples-3.15.jar(官方示例,开发不需要)

poi-excelant-3.15.jar(不需要)

poi-ooxml-3.15.jar(excel,word,ppt均需要)

poi-ooxml-schemas-3.15.jar(excel需要)

poi-scratchpad-3.15.jar(ppt,vsd,word,viso,outlook等需要)

Java 之 POI各Jar包作用的更多相关文章

poi各种jar包作用和导入

poi各种jar包作用和导入 目前POI的最新发布版本是poi-bin-3.17-20170915. 下载地址: Apache POI - Download Release Artifacts ht ...

java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载

从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...

Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)

最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...

Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)

Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...

分享:根据webservice WSDL地址自动生成java调用代码及JAR包

分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...

使用 DJ Java Decompiler 将整个jar包反编译成源文件

使用 DJ Java Decompiler 将整个jar包反编译成源文件 所使用的软件是 DJ Java Decompiler 3.9. 下面是一个有用的参考文档,说明如何批量编译 http://ww ...

java中最常用jar包的用途说明

java中最常用jar包的用途说明,适合初学者 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实 ...

Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...

在java工程中导入jar包的注意事项

在java工程中导入jar包后一定要bulid path,不然jar包不可以用.而在java web工程中导入jar包后可以不builld path,但最好builld path.

随机推荐

C#中使用throw和throw ex抛出异常的区别

通常,我们使用try/catch/finally语句块来捕获异常,就像在这里说的.在抛出异常的时候,使用throw和throw ex有什么区别呢? 假设,按如下的方式调用几个方法: →在Main方法中 ...

CE找基址

tms web core程序部署

tms web core程序部署 笔者把已经开发好的TMS WEB CORE程序部署到阿里云服务器上面,来作为例子. 1)复制TMS WEB CORE前端程序到服务器的c:\room\ 2)复制TMS ...

Java利用QRCode.jar包实现二维码编码与解码

QRcode是日本人94年开发出来的.首先去QRCode的官网http://swetake.com/qrcode/java/qr_java.html,把要用的jar包下下来,导入到项目里去.qrcod ...

Swift - 从字典(或者Alamofire)直接创建Model文件的工具

Swift - 从字典(或者Alamofire)直接创建Model文件的工具 效果 1. 常规生成model的方式 2. 通过debug创建model的方式 特性 1. 可以处理JSON格式的字典数据 ...

Android 开发:由模块化到组件化(一)

在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发 以下高能,请做好心理准备,看不懂请发私信来交流 ...

进一步优化ListView

之前我已经分享过一篇:viewHodler的通用写法,就是专门用来优化listview的加载的,但是对于复杂的布局,我们还需要在listview滑动和不滑动时进行自己的处理,今天我看到一篇文章就是讲这 ...

ASP.NET Core开发-读取配置文件Configuration appsettings.json

https://www.cnblogs.com/linezero/p/Configuration.html ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配 ...

细说SQL Server中的加密【转】

简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

spring自定义类中@AutoWired标识的元素注入为null

最近在做项目的时候,发现程序运行的时候有一个nullpointer exception,一脸懵逼因为感觉程序没什么逻辑.后来发现是因为new出来的component不会自动注入它的元素. 现象:@Co ...