Apache的POI - 无效部分处理数据(Apache POI - Invalid part t

2019-07-31 17:30发布

我访问使用Java的Apache POI(Excel电子表格hssf )。 我得到了以下错误:

java.lang.RuntimeException: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:143)
at org.testng.internal.Parameters.handleParameters(Parameters.java:426)

我在想什么?

Answer 1:

要打开一个xlsx (Office打开XML)文件,你应该使用XSSFWorkbook代替HSSFWorkbook ,它用于xls (EXCEL 97-2003)文件。

如果您使用的POI <3.5,则需要至少升级到3.5版本,以便能够读取xlsx文件。 这里有一个指南做了转换,但本质上,你需要加载使用文件WorkbookFactory它负责创建任何一个的XSSFWorkbookHSSFWorkbook为您提供:

Workbook workbook = WorkbookFactory.create(new File("file.xlsx"))


Answer 2:

确保Excel工作表中没有损坏,打开它。 如果你看到任何错误,将文件另存为MS Excel的工作表97-2003。
另外,请确保您指定的文件名如“**。XLS”



文章来源: Apache POI - Invalid part to process data