1

我使用 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)

我错过了什么?

4

2 回答 2

9

打开( xlsxOffice Open XML) 文件,您应该使用XSSFWorkbook代替HSSFWorkbook,它用于xls(Excel 97-2003) 文件。

如果您使用的 POI < 3.5,则需要至少升级到 3.5 版本才能读取xlsx文件。这是进行转换的指南,但本质上,您需要加载文件,该文件WorkbookFactory负责为您创建XSSFWorkbook或创建HSSFWorkbook

Workbook workbook = WorkbookFactory.create(new File("file.xlsx"))
于 2012-09-19T13:07:43.267 回答
1

通过打开它,确保 Excel 工作表没有损坏。如果您看到任何错误,请将文件另存为 MS Excel 97-2003 工作表。
还要确保您已将文件名指定为“**.xls”

于 2015-01-22T10:20:29.600 回答