一背景介紹
java web環境需要讀取excel表格中的資料,插入到資料庫中,需要用到XSSFWorkbook類讀表格檔案,關鍵代碼如下:
//讀取excel
public static Workbook readExcel(String filePath) {
Workbook wb = null;
if (filePath == null) {
return null;
}
String extString = filePath.substring(filePath.lastIndexOf("."));
InputStream is = null;
try {
is = new FileInputStream(filePath);
if (".xls".equals(extString)) {
return wb = new HSSFWorkbook(is);
} else if (".xlsx".equals(extString)) {
return wb = new XSSFWorkbook(is);
} else {
return wb = null;
}
} catch (FileNotFoundException e) {
LOGGER.error(e.toString());
} catch (IOException e) {
LOGGER.error(e.toString());
}
return wb;
}
二 問題發生
在本地運作,如寫個main方法跑或者用@test跑是能正常運作,但是到web上,打斷點發現不能找到這個類
于是嘗試更新依賴包
還是不行。不能解決掉,陷入了深深的思考中。對于環境問題和依賴問題,處理起來是真的難受。
嘗試了其他作者給的推薦依賴和版本,還是不行:
第一個:
第二個:
三 問題解決
繞過問題,山不過來我過去。
改變檔案格式:即xlsx為xls,最終回到了HSSFWorkbook類讀取。
為
這樣在web層就能通路了。
(ps:需要注意的是,如果你直接把.xlsx格式檔案變為.xls是不行的,需要先打開檔案,點選另存為.xls格式才行,這裡不能偷懶,筆者也踩過這個坑)