簡體   English   中英

Apache POI xls 文件錯誤

[英]Apache POI xls file error

我想同時讀取xlsxlsx文件格式。 它適用於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)

請幫忙。

-謝謝

我認為您的問題是由於您嘗試使用OPCPackage構建工作簿,即使您使用WorkbookFactory OPCPackage “解壓縮”您的.xlsx以便能夠讀取其中的 xml 文件,但這不適用於 HSSF,因為它是一個二進制文件。

我的建議是您使用另一個構造函數,例如

WorkbookFactory.create(InputStream input)

我想它應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM