Java Apache POI xls文件错误

Java Apache POI xls文件错误,java,apache-poi,xls,Java,Apache Poi,Xls,我想同时阅读xls和xlsx文件格式。对于xlsx格式,它工作正常,但在上载xls文件时,我遇到以下错误 代码: 错误: 请帮忙 -谢谢我认为您的问题是因为您试图使用OPCPackage构建工作簿,即使您使用WorkbookFactoryOPCPackage“解压”您的.xlsx,以便能够读取其中的xml文件,但这不适用于HSSF,因为它是一个二进制文件 我建议您使用另一个构造函数,例如 WorkbookFactory.create(InputStream输入) 我想它应该可以正常工作。我认为您

我想同时阅读
xls
xlsx
文件格式。对于
xlsx
格式,它工作正常,但在上载
xls
文件时,我遇到以下错误

代码: 错误: 请帮忙


-谢谢

我认为您的问题是因为您试图使用
OPCPackage
构建工作簿,即使您使用
WorkbookFactory
OPCPackage
“解压”您的
.xlsx
,以便能够读取其中的xml文件,但这不适用于HSSF,因为它是一个二进制文件

我建议您使用另一个构造函数,例如

WorkbookFactory.create(InputStream输入)


我想它应该可以正常工作。

我认为您的问题是因为您试图使用
OPCPackage
构建工作簿,即使您使用
WorkbookFactory
OPCPackage
“解压”您的
.xlsx
,以便能够读取其中的xml文件,但这不适用于HSSF,因为它是一个二进制文件

我建议您使用另一个构造函数,例如

WorkbookFactory.create(InputStream输入)


我想它应该可以用。

谢谢!!这确实有帮助。这是个错误。我删除了opc包。@mtk如何删除opc包?我发现了同样的异常。@Mihir,不要使用XSSF工作簿,而是使用工作簿(工作簿=WorkbookFactory.create(fileInputStream);)谢谢!!这确实有帮助。这是个错误。我删除了opc包。@mtk如何删除opc包?我发现了相同的异常。@Mihir,使用工作簿(工作簿=WorkbookFactory.create(fileInputStream);,而不是使用XSSFWorkbook)
try {

    FileInputStream fileInputStream = new FileInputStream("/apps/" + fileName);
    //POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);

    Workbook workBook = WorkbookFactory.create(OPCPackage.open(fileInputStream));
    //XSSFWorkbook workBook1 = new XSSFWorkbook();
    Sheet ssSheet = workBook.getSheetAt(0); 

    Iterator rowIterator = ssSheet.rowIterator();

    while (rowIterator.hasNext()) {
        Row ssRow = (Row) rowIterator.next();
        Iterator iterator = ssRow.cellIterator();
        List cellTempList = new ArrayList();
        while (iterator.hasNext()) {
            Cell ssCell = (Cell) iterator.next();
            cellTempList.add(ssCell);
        }
        cellDataList.add(cellTempList);
    }
} catch (Exception e) {
    e.printStackTrace();
}
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:148)
      at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:623)
      at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:230)