jar包--POI.jar包使用問題匯總


使用POI低版本的jar包,導入excel時類型不匹配報錯,優化方式

使用場景:如題,在導入報表時,導入cell類型錯誤,一般常見是'字符串'和'數字類型'的問題

原因:cell中的類型無法判斷,單獨使用getStringvalue或者getNumericValue會報錯

解決方法:所以添加以下代碼,然后調用cellToString(HSSFRow row,int r)方法即可,無論是數字型、字符串型、布爾型、最后返回的都是字符串型,可直接存到數據庫中使用:

 1 public String cellToString(HSSFRow row,int r){
 2     String dates = new String();
 3     HSSFCell cell = row.getCell((short)r);
 4     if(null!=cell){
 5         switch(cell.getCellType()){
 6             case HSSFCell.CELL_TYPE_NUMERIC:
 7                 dates = String.valueOf(((long)cell.getNumericCellValue())).trim();//數字類型
 8                 System.out.println("NUMERIC="+dates);
 9                 break;
10             case HSSFCell.CELL_TYPE_STRING:
11                 dates = cell.getStringCellValue().trim();//字符串類型
12                 System.out.println("STRING="+dates);
13                 break;
14             case HSSFCell.CELL_TYPE_BOOLEAN:
15                 dates = String.valueOf(cell.getBooleanCellValue()).trim();//布爾類型
16                 break;
17             default:
18                 System.out.print("表中有除數字、字符串、布爾之外的類型   ");
19                 break;
20         }
21 
22     }
23     return dates;
24 }

poi報錯:Invalid header signature

產生場景:這個問題是在使用poi導入excel文件時產生的:

問題原因:excel是從網頁下載或者其他第三方軟件導出的,所以它的后綴名雖然是xsl,但是它文件頭簽名仍然是原來的格式,所以poi不能識別,所以pio不能讀取它

解決方法:使用excel打開,另存為2003版的excel,再導入就好了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM