通過流傳入excel解析的問題

2022-06-12 09:03:10 字數 485 閱讀 5603

做了個excel檔案匯入的功能,接收excel檔案流,先讀取檔案流頭部資訊確定檔案型別,然後呼叫poi方法

opcpackage pkg = opcpackage.open(inputstream)

根據報錯資訊來看,提示檔案流不是.xlsx檔案,但是上傳的檔案確實是.xlsx檔案。

原因:流不能被多次讀取,在讀取檔案流獲取頭部資訊後檔案流已經不能再讀取了,所以會提示「錯誤的檔案型別」

解決辦法:使用 bytearrayinputstream()快取流,可以進行多次讀取。

bytearrayoutputstream bos = new bytearrayoutputstream();
inputstream xlsxstream = new bytearrayinputstream(bos.tobytearray());
opcpackage.open(xlsxstream)

關於通過前端xslx解析excel日期少一天原因

關於通過前端xslx解析excel日期格式資料轉化問題以及自定義時間格式yyyy mm dd轉化 const workbook xlsx.read data,定義乙個轉換日期格式的方法 成日期格式 yyyy mm dd 注意的點 xlsx將excel中的時間內容解析後,會小一天 如2020 11 3...

poi讀取excel解析最常見的問題

excel儲存日期 時間均以數值型別進行儲存,讀取時poi先判斷是是否是數值型別,再進行判斷轉化 1 數值格式 cell type numeric 1.純數值格式 getnumericcellvalue 直接獲取資料 2.日期格式 處理yyyy mm dd,d m yyyy h mm,hh mm 等...

關於POI解析Excel遇到空行的問題

因為我們在錄入excel時如果直接按delete鍵刪除,poi會認為我們delete的這行是null,但是存在 那麼在讀取過程中,就會有行數干擾問題,導致報空指標異常 這裡我是這麼做的 int rowcount sheet.getlastrownum int rownums 0 這裡是去除 裡的空行...