POI 组件依赖
按需引入对应依赖 (给出官方的指引)
组件 | 作用 | Maven依赖 |
---|---|---|
POIFS | OLE2 Filesystem | poi |
HPSF | OLE2 Property Sets | poi |
HSSF | Excel XLS | poi |
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 or ooxml-schemas and ooxml-security |
XSSF | Excel XLSX | poi-ooxml |
XSLF | PowerPoint PPTX | poi-ooxml |
XWPF | Word DOCX | poi-ooxml |
XDGF | Visio VSDX | poi-ooxml |
Common SL | PowerPoint PPT 和 PPTX 共用组件 | poi-scratchpad and poi-ooxml |
Common SS | Excel XLS 和 XLSX 共用组件 | poi-ooxml |
XSSF | Excel XLSX | poi-ooxml |
XSLF | PowerPoint PPTX | poi-ooxml |
XWPF | Word DOCX | poi-ooxml |
XDGF | Visio VSDX | poi-ooxml |
Common SL | PowerPoint PPT 和 PPTX 共用组件 | poi-scratchpad and poi-ooxml |
Common SS | Excel XLS 和 XLSX 共用组件 | poi-ooxml |
什么是 OLE2 和 OOXML
OLE2 和 OOXML 本质上都是一种文件格式规范或标准,平时看到的 excel 中,有字体、公式、颜色、图片等等,看起来非常复杂,但是在文件结构上都遵循着固定的格式。
OLE2 文件一般包括 xls、doc、ppt 等,是二进制格式的文件。 相关内容可以参考: 复合文档Ole对象二进制储存格式 。
OOXML文件一般包括 xlsx、docx、pptx 等。该类文件以指定格式的 xml 为基础并以 zip 格式压缩,这里我利用解压工具解压本地的一个 xlsx 文件,可以看到以下文件结构,在本文例子中,我们会重点关注 sharedStrings.xml 和 sheet1.xml 的内容,因为使用 SAX API 时必须用到:
包名 | 描述 |
---|---|
org.apache.poi.ss | Excel API,底层解析方式类似 DOM,效率较低,内存占用较大 |
org.apache.poi.hssf | Excel XLS API,采用 SAX API 方式读写 |
org.apache.poi.xssf | Excel XLSX API,采用 SAX API 方式读写 |
POI SAX 方式的 API 非常繁琐,使用时须熟练掌握 OLE2 或 OOXML 的规范