1.下載jar包
下載地址:https://poi.apache.org/download.html#POI-4.1.2
2.放入項目中,刪除老的jar包
3.解決報錯
替換上圖6個jar包完會報兩種錯,一種代碼直接報錯,一種調用原來功能報錯
- 代碼直接報錯解決方法(部分)
報錯 | 替換 | 註釋 |
---|---|---|
HSSFCellStyle.ALIGN_CENTER | HorizontalAlignment.CENTER | 居中 |
Cell.CELL_TYPE_NUMERIC | CellType.NUMERIC | 類型對應的值:0 |
Cell.CELL_TYPE_STRING | CellType.STRING | 類型對應的值:1 |
Cell.CELL_TYPE_FORMULA | CellType.FORMULA | 類型對應的值:2 |
Cell.CELL_TYPE_BLANK | CellType.BLANK | 類型對應的值:3 |
Cell.CELL_TYPE_BOOLEAN | CellType.BOOLEAN | 類型對應的值:4 |
Cell.CELL_TYPE_ERROR | CellType.ERROR | 類型對應的值:5 |
- 調用原來功能報錯
因爲老的poi3.8還需要多個apache-comons-xxx.jar的jar包支持,所以要替換apache-commons的jar包來與目標版本4.1.2相對應,可以在https://mvnrepository.com/查找對應的jar包
這步驟比較麻煩,但基本可以憑報錯信息中,根據類的包名找到需要下載的jar包,如:
其他commons-xxx.jar包替換類似
4.奇葩報錯:NoSuchFieldError:LFH_SIG
- 有些不知道原來的jar包是哪個,雖然下載對應的版本了,但是沒刪除原來的jar包,也會報錯,比如:
可能你已經下載了commons-compress正確的jar包,但是還報錯,這個時候,怎麼找原來老版本的commons-compress的jar包顯得至關重要;
怎麼辦呢?
(1)往下看找到最近的報錯地方
(2)利用eclipse的CTRL+T功能
此功能是搜索類,不同於CTRL+R只能搜索項目中的我們自己寫的類,CTRL+T還能搜索jar包中的類,選中類,會提示來自哪個jar包
在輸入org.apache.commons.compress.archiver時,查看提示的類中有一個ArchiverFactory類,此類對應的jar包不是commons-compress-1.20.jar;而是apache-jakarta-commons-compress.jar;嘗試刪除apache-jakarta-commons-compress.jar,刪除後問題解決