使用 Apache POI 處理 Microsoft Office 文檔
POI 概述
Apache POI 項目的使命是創造和維護 Java API 操縱各種格式的文件,其中包括基于 Office Open XML 標準(OOXML)和微軟的OLE 2 Compound Document 格式(OLE2)。總之,你可以使用 Java 讀寫 MS Excel 文件。此外,您可以使用 Java 讀取和寫入 MS Word 和 MS PowerPoint 文件。Apache POI 是你的 Java Excel 解決方案(用于Excel 97-2008)。包含了一個完整的 API 用于移植其他 OOXML 和OLE2 格式。
OLE2 文件包括了 Microsoft Office 文件,比如 XLS, DOC, PPT 以及 MFC 的序列化 API 為基礎的文件格式。項目提供 OLE2 Filesystem (POIFS) 和 OLE2 Document Properties (HPSF) 等 API。
Office OpenXML Format 是 Microsoft Office 2007 和 2008 中新的基于 XML 的標準。包括 XLSX, DOCX 和 PPTX。該項目提供了一個低級別的 API 使用 openxml4j來支持 Open Packaging Conventions(開放打包約定)。
針對每個 現存的 MS Office 模塊組件,試圖提供一個共同的高級別 Java api 給 OLE2 和 OOXML 文檔格式。Excel (SS=HSSF+XSSF)
Word (HWPF+XWPF),PowerPoint (HSLF+XSLF),Outlook (HSMF), Visio (HDGF), TNEF (HMEF), 和 Publisher (HPBF).
該項目盡可能與其他項目合作提供此功能。比如:Cocoon提供 HSSF 的序列化;與Open Office.org合作處理 XLS 格式;和 Tika/ Lucene提供格式解釋器。
組件
組件 | 應用類型 | Maven artifactId | 備注 | </tr>|||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POIFS | OLE2 Filesystem | poi | Required to work with OLE2 / POIFS based files | </tr>|||||||||||||||||||||||||
HPSF | OLE2 Property Sets | poi | </tr> | |||||||||||||||||||||||||
HSSF | Excel XLS | poi | For HSSF only, if common SS is needed see below | </tr>|||||||||||||||||||||||||
HSLF | PowerPoint PPT | poi-scratchpad | </tr> | |||||||||||||||||||||||||
HWPF | Word DOC | poi-scratchpad | </tr> | |||||||||||||||||||||||||
HDGF | Visio VSD | poi-scratchpad | </tr> | |||||||||||||||||||||||||
HPBF | Publisher PUB | poi-scratchpad | </tr> | |||||||||||||||||||||||||
HSMF | Outlook MSG | poi-scratchpad | </tr> | |||||||||||||||||||||||||
OpenXML4J | OOXML | poi-ooxml plus either poi-ooxml-schemas or ooxml-schemas and ooxml-security |
see below for differences | </tr>|||||||||||||||||||||||||
XSSF | Excel XLSX | poi-ooxml | </tr> | |||||||||||||||||||||||||
XSLF | PowerPoint PPTX | poi-ooxml | </tr> | |||||||||||||||||||||||||
XWPF | Word DOCX | poi-ooxml | </tr> | |||||||||||||||||||||||||
Common SS | Excel XLS and XLSX | poi-ooxml | WorkbookFactory and friends all require poi-ooxml, not just core poi | </tr> </tbody> </table>