2012-09-19 2 views
1

Java Apache POI (hssf)를 사용하여 Excel 스프레드 시트에 액세스합니다. 다음 오류가 발생했습니다.Apache POI - 데이터 처리에 유효하지 않은 부분

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) 

무엇이 누락 되었습니까?

+0

무엇이 문제입니까? –

+4

이 데이터를 처리하려면 POI의 다른 부분을 호출해야합니다 (예 : HSSF 대신 XSSF). – NimChimpsky

답변

8

openxlsx (오피스 오픈 XML) 파일로 대신 xls에 사용되는 HSSFWorkbookXSSFWorkbook (엑셀 97-2003) 파일을 사용해야합니다.

POI < 3.5를 사용하는 경우 xlsx 개의 파일을 읽을 수 있으려면 버전 3.5 이상으로 업그레이드해야합니다. 여기에 변환을 수행하기위한 guide는하지만 기본적으로, 당신은 당신을 위해 XSSFWorkbook 또는 HSSFWorkbook 중 하나의 생성을 담당 WorkbookFactory 사용하여 파일을로드 할 것 :

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

을 확인 엑셀 시트가 아닌지 확인을 열면 부패합니다. 오류가 발생하면 파일을 MS Excel 97-2003 워크 시트로 저장하십시오.
또한 파일 이름을 "**. xls"로 지정했는지 확인하십시오.