我使用 Java Apache POI (hssf
) 访问 Excel 电子表格。我收到以下错误:
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)
我错过了什么?
最佳答案
收件人open xlsx
(Office Open XML) 文件,你应该使用 XSSFWorkbook
而不是 HSSFWorkbook
, 用于 xls
(Excel 97-2003) 文件。
如果您使用的是 POI < 3.5,您需要至少升级到 3.5 版,以便能够读取 xlsx
文件。这是一个 guide进行转换,但本质上,您需要使用 WorkbookFactory
加载文件它负责为您创建 XSSFWorkbook
或 HSSFWorkbook
:
Workbook workbook = WorkbookFactory.create(new File("file.xlsx"))
关于java - Apache POI - 处理数据的无效部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12494982/