目前POI的最新發布版本是3.10_FINAL.該版本保護的jar包有:
| Maven artifactId | Prerequisites | JAR |
|---|---|---|
| poi | commons-logging, commons-codec, 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.1.jar |
很多人都困惑POI那么多Jar到底應該導入哪一個。
實際上很多時候我們只利用POI來操作Excel。甚至只用xls這一種格式。
那么就沒有必要全部都導入了。具體應該使用哪個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 | |
| OpenXML4J | OOXML | poi-ooxml plus one of poi-ooxml-schemas, ooxml-schemas |
Only one schemas jar is needed, see below for differences |
| XSSF | Excel XLSX | poi-ooxml | |
| XSLF | PowerPoint PPTX | poi-ooxml | |
| XWPF | Word DOCX | poi-ooxml | |
| Common SS | Excel XLS and XLSX | poi-ooxml | WorkbookFactory and friends all require poi-ooxml, not just core poi |
當我們只要使用xls格式時、只要導入poi-version-yyyymmdd.jar就可以了。
當我們還要使用xlsx格式、還要導入poi-ooxml-version-yyyymmdd.jar。
至於poi-ooxml-schemas-version-yyyymmdd.jar這個jar基本不太會用到的。(但是個人發現如果不導入這個包 會報錯)
當我們需要操作word、ppt、viso、outlook等時需要用到poi-scratchpad-version-yyyymmdd.jar。
當操作excel2007以上的版本的時候,需要導入poi-ooxml-version-yyyymmdd.jar。當我導入之后,的確是可以調用excel2007的操作類了 例如:XSSFWorkbook.可是當項目調試的時候,會報java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject 這個錯誤,在操作office2007還要加入一個包xbean.jar ,原以為導入這個包之后,就萬事大吉了。可是接下來又報錯了,查資料發現還是需要導入poi-ooxml-schemas-version-yyyymmdd.jar。
