POI做office2007資料匯出報異常AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
阿新 • • 發佈:2018-12-21
一.問題說明
在做poi匯出為xlsx檔案時,工具類丟擲異常。異常如下:
java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
在搜遍全網進行jar包衝突問題後,問題依然不得解決。尤其是說xercesImpl.jar和xml-apis.jar這兩個jar包的版本問題的,我改完了所有版本後問題依然存在,並沒有什麼卵用(兩行老淚)。 因為異常定位到和xml相關上,所以自己的注意點一直在這。
二.問題解決
然後我開始求助別人,在朋友的提示下開始在poi的版本上研究。然後開始從最新版本實驗。最後發現以下版本是可以使用的
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-excelant</artifactId> <version>3.9</version> </dependency>
然後系統開始匯出的是一個zip檔案,雖然還是不行但是總算有了希望。這裡我要說的是其實office2007版本的excel其實就是一個zip檔案,然後我改了字尾就好了。出現這種問題多半是檔名和字尾設定的問題,自己注意改程式碼就好。
還有一個坑的地方想說下,就是3.9版本在網上的maven倉庫上搜索的時候居然是沒有的,還是我試出來的(吐血)。寫這篇部落格是希望遇到類似問題的同行們能夠快速解決問題。