1.讀取網路路徑的excel檔案(流檔案格式)
2.獲取excel的每一行資料,並驗證學校班級是否存在,並獲取對應的schoolid和classid
3.批量儲存學生資訊,並返回儲存成功的行數
匯入關於excel的pom檔案
>
>
org.apache.poigroupid
>
>
poiartifactid
>
>
3.16version
>
dependency
>
>
>
org.apache.poigroupid
>
>
poi-ooxmlartifactid
>
>
3.16version
>
dependency
>
測試過程中發現bug:
1、**資料容易出現前後空格,居中顯示時,對資料核查出現失誤,故需要對**資料使用trim()去除資料的前後空格。
2、**資料為純數字時,獲取**會預設型別為number,此時需要獲取string會報「cannot get a string value from a numeric cell」錯,需要提前使用 c0.setcelltype(celltype.string); 詳情見下面**。
;// 試圖連線並取得返回狀態碼
("檔案伺服器連線失敗");
}else
else
if(fileurl.
contains
(".xls"))
else
//獲取excel文件中的第乙個表單
sheet sheet = wb0.
getsheetat(0
);if(sheet.
getphysicalnumberofrows()
<2)
", sheet.
getphysicalnumberofrows()
);throw
newbadrequestexception
("**資料過少,儲存失敗");
}//對sheet中的每一行進行迭代
for(row r : sheet)
//建立實體類
student stu=
newstudent()
; cell c0 = r.
getcell(0
);cell c1 = r.
getcell(1
);cell c2 = r.
getcell(2
);if(null == c0 || null == c1 || null == c2)
//當**內資料為數字時,會自動轉換成number型別,所以需提前轉換**資料為string型別
c0.setcelltype
(celltype.string)
; c1.
setcelltype
(celltype.string)
; c2.
setcelltype
(celltype.string)
; stu.
setschoolname
(c0.
getstringcellvalue()
);stu.
setclassname
(c1.
getstringcellvalue()
);stu.
setname
(c2.
getstringcellvalue()
);//第四列資料選填
stu.
setcardid
(null == r.
getcell(3
)?"": r.
getcell(3
).getstringcellvalue()
);//檢查學生的學校和班級是否存在
schoolclass scinfo = badgedatarepository.
queryschoolclassbyname
(stu.
getclassname()
, stu.
getschoolname()
);if(null == scinfo)
logger.
debug
("studentexcelimport excel[{}] name:{},schoolid:{},classid:{}"
, r.
getrownum()
, stu.
getstudentname()
, scinfo.
getschoolid()
, scinfo.
getclassid()
);stu.
setschoolid
(scinfo.
getschoolid()
);stu.
setclassid
(scinfo.
getclassid()
);temp.
add(stu);}
wb0.
close()
; filein.
close()
;//批量儲存學生資訊,避免頻繁開關資料庫連線
bret = badgedatarepository.
addstudentlist
(temp);if
(!bret)
return temp.
size()
;}}catch
(ioexception e)
對mysql資料庫進行批量新增
<
insert id=
"addstudentlist" usegeneratedkeys=
"true" keyproperty=
"id"
>
insert
into student(
name,
cardid,
schoolid,
schoolname,
classid,
classname
)values
"list" item=
"item"
index
="index" separator=
",">(#,
#,#,
#,#,#)
<
/foreach>
<
/insert
>
如何批量從Excel檔案中匯入資料到資料庫 一
設計系統不單單要考慮到錄入介面,對哪些使用者已經儲存的資料檔案 基本上都是excel檔案 難道需要使用者再次將已有的資料進行錄入嗎?答案肯定是 no,乙個好的設計和編碼人員再設計系統和編碼時,更多的需要考慮到介面友好,使用者操作簡單和設計合理,能更多的從使用者的角度來分析設計系統。下面來說說實際工作...
如何批量從Excel檔案中匯入資料到資料庫 二
設計系統不單單要考慮到錄入介面,對哪些使用者已經儲存的資料檔案 基本上都是excel檔案 難道需要使用者再次將已有的資料進行錄入嗎?答案肯定是 no,乙個好的設計和編碼人員再設計系統和編碼時,更多的需要考慮到介面友好,使用者操作簡單和設計合理,能更多的從使用者的角度來分析設計系統。下面來說說實際工作...
從EXCEL匯入資料到SQL SERVER
從excel匯入資料到sql server 左直拳 介紹兩種途徑將資料從excel中匯入到sql server。一 在程式中,用ado.net。如下 連線串 string strconn provider microsoft.jet.oledb.4.0 extended properties exc...