2017-09-04 105 views
0

我有方法的bean的生成與JETT提出報告:如何解析由jett生成的xls文件中的InvalidFormatException?

Map<String, Object> beans = new HashMap<String, Object>(); 

    beans.put("fichasTecnicasMateriaPrimaResumo", fichasTecnicasMateriaPrimaResumo); 

    try { 

     InputStream inPath = ProdutoManagedBean.class.getResourceAsStream("/template.xls"); 

     ExcelTransformer transformer = new ExcelTransformer(); 
     transformer.transform(inPath, beans); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (InvalidFormatException e) { 
     e.printStackTrace(); 
    } 

我有在transformer.transfom的InvalidFormatException(...):

22:44:37,803 ERROR [stderr] (default task-28) org.apache.poi.openxml4j.exceptions.InvalidFormatException: Your InputStream was neither an OLE2 stream, nor an OOXML stream 

我看到,它可能關於xls文件與libreoffice的兼容性等等。感謝您的任何幫助。

+1

錯誤表明它已經存在:'Your InputStream既不是OLE2流,也不是OOXML流'。所以你的'template.xls'既不是'BIFF'格式的二進制Excel文件,也不是Office OpenXML文件。所以你的'template.xls'不是可以作爲Excel文件讀取的文件。也許這是一個錯誤的命名CSV文件?或者是一個錯誤的XML文件? Excel本身可能會打開它,但ExcelTransformer不是。 –

+0

那麼我創建了一個xls和xlsx在微軟excel 2007本身,它仍然給出了同樣的錯誤...它會甚至是辦公室excel文件將被創建錯誤?你建議對代碼進行任何更改嗎?代碼中沒有什麼可以做的嗎? @AxelRichter – philabreu

+0

錯誤來自[WorkbookFactory](https://svn.apache.org/viewvc/poi/tags/REL_3_14_FINAL/src/ooxml/java/org/apache/poi/ss/usermodel/WorkbookFactory.java?revision = 1732982&view = markup#l196),只有當InputStream中的第一個字節錯誤時纔會出現。所以如果你懷疑你的文件是錯誤的,那麼帶有'InputStream'的東西一定是錯的。但是,如果沒有你的環境,我們無法測試。 –

回答

0

我發現xls實際上正在被maven破壞......當我試圖打開野蠻部署文件夾中的文件時,它已經被破壞......我嘗試了一些解決方案來解決這個數據問題腐敗,但我還沒有發現什麼工作,但至少我已經知道什麼是真正的錯誤。謝謝。