1. 程式人生 > >匯入Excel2007的檔案就會報如下異常

匯入Excel2007的檔案就會報如下異常

匯入Excel2007的檔案就會報如下異常:
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)

該錯誤意思是說,檔案中的資料是用Office2007+XML儲存的,而現在卻呼叫OLE2 Office文件處理,應該使用POI不同的部分來處理這些資料,比如使用XSSF來代替HSSF。
如果只是支援Excel2003的話,需要匯入的poi包只需要:

  • dom4j-1.6.1.jar
  • poi-3.8-20120326.jar
    但是如果要同時支援Excel2003和Excel2007就得需要:

dom4j-1.6.1.jar
poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
poi-scratchpad-3.8-20120326.jar
xmlbeans-2.3.0.jar
個人總結:如果是是2013版及之前的,建立工作簿的時候使用:HSSFWorkbook workbook = new HSSFWorkbook();相應的之後在建立表格,行,單元格
時使用:HSSFSheet sheet 、HSSFRow row、HSSFCell cell,
如果是是2017版,建立工作簿的時候使用: XSSFWorkbook workbook = new XSSFWorkbook();相應的之後在建立表格,行,單元格時使用:Sheet sheet、Row row、Cell cell。