簡體   English   中英

使用Apache POI讀取XLSX文件時發生異常

[英]Exception when using Apache POI to read XLSX file

我目前正在與Apachi合作,因為我需要從XLSX文件讀取數據,以后將其轉換為CSV。 這是我用來創建XSSFWorkbook的代碼,它每次都會導致異常。 據我所知,XMLBeans是其中的一部分。 它已被棄用,但是在這種情況下,它是POI的依賴項。

public static void appendCSV(File inputFile, String outputFile, String tag)
{
    System.out.println(inputFile.getAbsolutePath());
       InputStream inp = null;
        try {
            inp = new FileInputStream(inputFile);
            XSSFWorkbook wb = new XSSFWorkbook(inp);

我的異常被拋出在上面代碼塊的最后一行。

Exception in thread "main" org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
at org.apache.poi.POIXMLFactory.createDocumentPart(POIXMLFactory.java:65)
at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:601)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:174)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:279)
at BigBangarang.appendCSV(BigBangarang.java:68)
at BigBangarang.main(BigBangarang.java:268)

Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:56)
at org.apache.poi.POIXMLFactory.createDocumentPart(POIXMLFactory.java:62)
... 5 more

Caused by: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setLoadEntityBytesLimit(I)Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:50)
at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:127)
at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:108)
... 11 more

有人遇到過這種情況嗎? 我擁有最新的XMLBeans版本,幾乎感覺到我可能需要找到一個舊版本,因為它說缺少一種方法。 我不確定是否有替代/便捷的方法來讀取XLSX,或者在處理任何數據之前將其簡單地轉換為CSV。

您需要將XMLBeans版本升級到2.6,或者將Apache POI版本升級到3.15 beta 1或更高版本。

您正在遇到Apache POI錯誤#59195 ,大約一個月前應用了一個臨時解決方法,該錯誤已包含在3.15 beta 1版本中。 (也從提交時間起每晚進行構建)。 完整修復將需要更長的時間,如果您有興趣,請關注該錯誤!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM