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的兼容性等等。感謝您的任何幫助。
錯誤表明它已經存在:'Your InputStream既不是OLE2流,也不是OOXML流'。所以你的'template.xls'既不是'BIFF'格式的二進制Excel文件,也不是Office OpenXML文件。所以你的'template.xls'不是可以作爲Excel文件讀取的文件。也許這是一個錯誤的命名CSV文件?或者是一個錯誤的XML文件? Excel本身可能會打開它,但ExcelTransformer不是。 –
那麼我創建了一個xls和xlsx在微軟excel 2007本身,它仍然給出了同樣的錯誤...它會甚至是辦公室excel文件將被創建錯誤?你建議對代碼進行任何更改嗎?代碼中沒有什麼可以做的嗎? @AxelRichter – philabreu
錯誤來自[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'的東西一定是錯的。但是,如果沒有你的環境,我們無法測試。 –