1. 程式人生 > 其它 >POI異常資訊:Package should contain a content type part [M1.13]

POI異常資訊:Package should contain a content type part [M1.13]

技術標籤:JAVA學習java

最近在寫專案的時候,使用到了POI對錶格的處理,在通過檔案流建立工作簿的時候,出現異常,異常資訊是:Package should contain a content type part [M1.13]。在這裡,記錄下這個資訊,也供大家參考


問題描述:

先看我的測試程式碼:
public static void main(String[] args)
    {
        ExportController a = new ExportController();
        InputStream is = a.getClass().getResourceAsStream
("/excel/測試模板.xlsx"); try { Workbook outWb = new XSSFWorkbook(is); } catch (IOException e) { e.printStackTrace(); } }
這段程式碼執行,拋POI異常:Package should contain a content type part [M1.13] 這個異常的原因可能有多種,查詢資料發現,大多數回答都是該異常是由於 Excel 2003和2007之間的區別導致的,或者就是說檔案是直接改字尾名得到(改字尾名也是會導致異常)。
Excel 2003和2007之間的區別:

HSSF - 提供讀寫Microsoft Excel格式檔案的功能。
XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。


原因分析:

Excel 的版本,我使用的是2007的,也就是字尾為.xlsx,按理說沒什麼問題的。
而且模板檔案也是新建的,不存在是通過改字尾名得到的(字尾名由.xlx改為.xlsx也是不能識別的)。


解決方案:

最後是把POI的版本從3.1.4改為3.1.3解決了問題
在這裡插入圖片描述

總結

解決方向: 1、建立工作薄的構造方法和Excel的版本是否選擇正確 2、Excel檔案的是否為新建,而不是通過修改後綴名得到 3、上面都沒有問題,考慮POI版本問題