如何解析由jett生成的xls文件中的InvalidFormatException?

问题描述:

我有方法的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'的东西一定是错的。但是,如果没有你的环境,我们无法测试。 –

我发现xls实际上正在被maven破坏......当我试图打开野蛮部署文件夹中的文件时,它已经被破坏......我尝试了一些解决方案来解决这个数据问题腐败,但我还没有发现什么工作,但至少我已经知道什么是真正的错误。谢谢。