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

(Office Open XML) ファイルを開くには、 (Excel 97-2003) ファイルに使用されるの代わりに使用する必要があります。xlsxXSSFWorkbookHSSFWorkbookxls

POI < 3.5 を使用している場合、ファイルを読み取れるようにするには、少なくともバージョン 3.5 にアップグレードする必要がありxlsxます。変換を行うためのガイドは次のとおりですが、基本的には、またはWorkbookFactoryの作成を処理する を使用してファイルをロードする必要があります。XSSFWorkbookHSSFWorkbook

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 に答える