apache poi xls文件错误

tquggr8v  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(294)

我两个都想读 xls 以及 xlsx 文件格式。这对我来说很管用 xlsx 格式,但我得到以下错误,而上传 xls 文件。

代码:

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)

请帮忙。
-谢谢

zrfyljdw

zrfyljdw1#

我认为你的问题是因为你试图用 OPCPackage ,即使您使用 WorkbookFactory . OPCPackage “解压”你的 .xlsx 为了能够读取其中的xml文件,但这不适用于hssf,因为它是一个二进制文件。
我建议您使用另一个构造函数,例如 WorkbookFactory.create(InputStream input) 我想它应该很好用。

相关问题