記一次Excel匯入資料

2021-10-05 02:23:18 字數 3780 閱讀 4452

使用excel匯入過程比較簡單,就是由於poi的版本,所以之前的一些方法可能不能使用了,特此開一篇文章記錄.

使用poi依賴

org.apache.poi

poi3.17

主要**

(value =

"/upload"

, method = requestmethod.post)

public operaresult upload

(@apiparam

(value =

"上傳的檔案"

, required =

true

) multipartfile file)

inputstream inputstream = file.

getinputstream()

; workbook workbook = null;

//判斷excel版本號

//xls是excel2003及以前版本生成的檔案格式

if(file.

getoriginalfilename()

.endswith

("xls"))

else

if(file.

getoriginalfilename()

.endswith

("xlsx"))

for(

int i =

0; i < workbook.

getnumberofsheets()

; i++

)//存放集合

list

list =

newarraylist

<

>()

;//第一行頭部資訊是固定的,我不需讀取第一行資料

//從第二行資料開始,讀取資料,生成物件

for(

int j =

1; j <= sheet.

getlastrownum()

; j++

)

tupletxpyuserinfo tupletxpyuserinfo =

newtupletxpyuserinfo()

;//生成user物件基本屬性

tupletxpyuserinfo.

setmobile

(xlsxdatautil.

getstringxlsx

(row.

getcell(0

)));

tupletxpyuserinfo.

setnickname

(row.

getcell(1

).getstringcellvalue()

);tupletxpyuserinfo.

setemail

(xlsxdatautil.

getstringxlsx

(row.

getcell(6

)));

//獲取userinfo的基本屬性

sysuserinfo userinfo =

newsysuserinfo()

; userinfo.

set***

(xlsxdatautil.

getstringxlsx

(row.

getcell(2

))=="男"

?"1"

:"0");

******dateformat dff =

new******dateformat

("yyyy-mm-dd");

userinfo.

setbirthday

(dff.

parse

(xlsxdatautil.

getstringxlsx

(row.

getcell(3

))))

; userinfo.

setnation

(xlsxdatautil.

getstringxlsx

(row.

getcell(4

)));

userinfo.

setnationplace

(xlsxdatautil.

getstringxlsx

(row.

getcell(5

)));

userinfo.

seteducation

(xlsxdatautil.

getstringxlsx

(row.

getcell(7

)));

userinfo.

setunit

(xlsxdatautil.

getstringxlsx

(row.

getcell(8

)));

userinfo.

setunitaddr

(xlsxdatautil.

getstringxlsx

(row.

getcell(9

)));

//此處的職稱是字串,需要在單點中進行拆分,查詢

userinfo.

settitle

(xlsxdatautil.

getstringxlsx

(row.

getcell(11

)));

//首先將資料儲存到自定義職稱上面,到單點中進行拆分

sysusersubject sysusersubject =

newsysusersubject()

; sysusersubject.

setcustom

(xlsxdatautil.

getstringxlsx

(row.

getcell(10

)));

list

subjects =

newarraylist

<

>()

; subjects.

add(sysusersubject)

;//開始封裝tupletxpyuserinfo

tupletxpyuserinfo.

setsysuserinfo

(userinfo)

; tupletxpyuserinfo.

setsysusersubjects

(subjects)

; list.

add(tupletxpyuserinfo);}

....

//省略資料庫crud邏輯}}

catch

(ioexception e)

catch

(parseexception e)

return operaresult;

}工具類

這個工具類主要是對cell中的資料做對應的處理,返回string格式

public

class

xlsxdatautil

//資料格式

if(celltype == celltype.numeric)

else}if

(celltype == celltype.boolean)

return cellvalue;

}}

Excel常用函式總結 記一次資料操作中使用函式

select id as 編號,name from 1301 group by 編號,name union allselect id as 編號,name from 1302 group by 編號,name union allselect id as 編號,name from 1303 group...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...

記一次 EqualsAndHashCode的疑惑

lombok的使用真的是讓開發人員欲罷不能,乙個 data不管有多少屬性全部搞定,以後加字段也不用從新生成get和set方法。不過這裡還是有乙個小坑需要注意一下,舉個例子 public class equalsandhashcodetest data noargsconstructor access...