POI異常資訊:Package should contain a content type part [M1.13]
阿新 • • 發佈:2021-01-11
最近在寫專案的時候,使用到了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之間的區別導致的,或者就是說檔案是直接改字尾名得到(改字尾名也是會導致異常)。 HSSF - 提供讀寫Microsoft Excel格式檔案的功能。
XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。
原因分析:
Excel 的版本,我使用的是2007的,也就是字尾為.xlsx,按理說沒什麼問題的。
而且模板檔案也是新建的,不存在是通過改字尾名得到的(字尾名由.xlx改為.xlsx也是不能識別的)。
解決方案:
最後是把POI的版本從3.1.4改為3.1.3解決了問題。