poi 匯入Excel封裝 並處理資料型別

2021-09-28 11:00:50 字數 2335 閱讀 5251

最近正在做oa,需求需要匯入匯出excel ,功能和方法使用起來挺簡單,做起來發現型別問題比較坑,自己稍微封裝了一下,

對於不想匯入的字段

自定義乙個註解,在實體類中的屬性上標註,相應的excel中也不該有該字段 

有一點不好的是:excel中欄位順序需要和實體類中屬性順序一致,且有自定義註解的屬性不應該出現在excel中 

有時間我會對擴充套件性和通用性做進一步封裝和處理

這裡 註解名為noexport 是因為之前寫匯出的時候命名,額 就沒有改了

自定義標籤

/**

* 自定義標籤 : 標註了的物件不匯出匯入

* @author huang

* */

@target(elementtype.field)

@retention(retentionpolicy.runtime)

public @inte***ce noexport

使用

public string includeemp(multipartfile multfile ) throws exception

listdeplist = new arraylist<>();

//獲取匯入的職工的集合

if ( wb.getsheet("department表")!=null ) }

匯入功能類

celltype

value

備註cell_type_numeric

數值型0

cell_type_string

字串型

1cell_type_formula

公式型2

cell_type_blank空值3

cell_type_boolean

布林型4

cell_type_error錯誤5

public class importexcel 

// 得到總行數

int rows = sheet.getlastrownum();

for ( int i = 1 ; i <= rows ; i ++ )

if ( row == null )

cell cell = row.getcell(k);

switch (cell.getcelltype()) else if ( field.gettype()==string.class )

} else

}field.set(t, integer.parseint(str) ) ;

} else if ( field.gettype()==string.class )

}break;

}// 字串型別

case cell.cell_type_string : else if ( field.gettype()==integer.class ) else

break;

}//空值的情況 可以拋異常 也可以 設空值

case cell.cell_type_blank :

}//以下 為 以實體類中 屬性為基準

// if ( row.getcell(k)==null )else

// if ( cell.getcelltype()==hssfcell.cell_type_numeric )

// }else if ( field.gettype()==date.class )

// if ( cell.getcelltype()==hssfcell.cell_type_string )

// }else

// }

// }

// }

}list.add(t);

} catch (numberformatexception e) catch (securityexception e) catch (illegalargumentexception e) catch (illegalacces***ception e) catch (instantiationexception e) catch (parseexception e)

}return list;

}}

poi匯入匯出excel

org.apache.poigroupid poiartifactid 3.14 beta1version dependency public private string headtextname 列頭 標題 名 private string propertyname 對應欄位名 private ...

POI實現Excel匯入

第一步 將excel表轉換成list其中 exceldto 屬性全部設定成string 便於自定義註解正則校驗 第二步 設定自定義註解 1 長度校驗註解 2 正則校驗註解 3 不能重複 第三步 編寫校驗方法返回錯誤資料 錯誤資料list 可匯入資料list 1.匯入依賴 org.apache.poi...

POI匯入匯出Excel

public class excelutils sheet sheet null row row null cell cell null list new arraylist 遍歷excel中所有的sheet for int i 0 i wb.getnumberofsheets i 遍歷當前shee...