我使用的是poi 3.7,上传的文件是.xlsx
poi 3.7
.xlsx
控制台显示:
org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:186) at poi.POITest.ReadAndPrintExcelFile(POITest.java:15) at poi.POITest.main(POITest.java:59) Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:147) at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:592) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:222) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) ... 3 more
只需使用 org.apache.poi.ss.usermodel.WorkbookFactory而不是创建实例即可:new HSSFWorkbook()或new XSSFWorkbook()。
org.apache.poi.ss.usermodel.WorkbookFactory
new HSSFWorkbook()
new XSSFWorkbook()
Workbook exWorkBook = WorkbookFactory.create(excelInputStream);