卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

getservletcontext獲取什么對(duì)象 springMVC怎么把結(jié)果集寫入Excel并導(dǎo)出?

springMVC怎么把結(jié)果集寫入Excel并導(dǎo)出?首先,我必須導(dǎo)入spring相關(guān)的包、poi和fileupload包,這些包是我用maven構(gòu)建的。一、導(dǎo)入excel(1)使用spring上傳文件

springMVC怎么把結(jié)果集寫入Excel并導(dǎo)出?

首先,我必須導(dǎo)入spring相關(guān)的包、poi和fileupload包,這些包是我用maven構(gòu)建的。

一、導(dǎo)入excel

(1)使用spring上傳文件

A.首頁提交

form namexcelimportform action $ { }/brand/importBrandSort方法post onsubmitreturn check import path();enctypemultipart/form-data idexcelImportForm

輸入類型隱藏名稱idids

差異

差異

標(biāo)簽輸入idexcel_file類型文件名文件名acceptxls//label

差異

輸入id excel _ buttontype提交值導(dǎo)入Excel/

/div

/div

/div

差異

按鈕類型button data-dismissmodal onClickuncheckBoxes();取消/按鈕

/div

B.spring的控制器在后臺(tái)執(zhí)行相關(guān)操作。這里主要說一下使用spring上傳文件和讀取文件信息。

在使用spring上傳文件之前,您需要配置bean。

bean idmultipartResolver /(值/importBrandSort,方法)

public modeland view importBrandSort(@ request param(文件名)MultipartFile文件,

HttpServletRequest請(qǐng)求,HttpServletResponse響應(yīng))引發(fā)異常{

字符串溫度()。getServletCont:為單位。

(4096);//設(shè)置內(nèi)存中最多只能存儲(chǔ)的數(shù)據(jù),以:位為單位。

(temp);//設(shè)置一旦文件大小超過getSizeThreshold()的值,數(shù)據(jù)將存儲(chǔ)在硬盤上的目錄。

//開始讀取上傳的信息

//

int索引0;

/*列表文件項(xiàng)為空;

嘗試{

fileItems(請(qǐng)求);

}

捕捉(異常e) {

();

}

迭代器ITER();//依次處理每個(gè)上傳的文件。

文件項(xiàng)文件項(xiàng)為空;

while (iter.hasNext()) {

FileItem item(文件項(xiàng))();//忽略不是文件字段的所有其他表單信息。

如果(!()) {

fileItem項(xiàng)目;

//索引;

}

}

if(文件項(xiàng)為空)

返回null

*/

如果(文件為空)

返回null

(());

字符串名稱();//獲取上傳文件名,包括路徑。

//name(()1);//從完整路徑中提取文件名

長(zhǎng)尺寸();

if((name null | | name . equals())size 0)

返回null

()中的InputStream

品牌移動(dòng)信息實(shí)體品牌移動(dòng)信息服務(wù)

(在);

//更改為手動(dòng)刷新緩存(新

//period dimensions());//清除所有緩存

int count();

String strAlertMsg

如果(算!0){

StrAlertMsg成功導(dǎo)入計(jì)數(shù)條目!;

}否則{

StrAlertMsg導(dǎo)入失敗!;

}

(strAlertMsg);

(brandPeriodSortList,BrandMobileInfos);

(strAlertMsg,strAlertMsg);

().setAttribute(msg,strAlertMsg);

return get(請(qǐng)求,響應(yīng));

//返回null

}

代碼的注釋部分是如何得到它,如果你不 不要用彈簧。交上來的文件名(需要一些apache工具包)其實(shí)和用spring的一樣,只是被封裝了,方便我們寫代碼。

后半部分代碼是讀取上傳的文件信息并更新數(shù)據(jù)庫(kù)后輸出到前臺(tái)頁面的信息。

在上面的代碼中:InputStream in();

品牌移動(dòng)信息實(shí)體品牌移動(dòng)信息服務(wù)

(在);讀取excel的信息。

(2)用poi讀取excel

A.更新數(shù)據(jù)庫(kù)

r

public ListBrandMobil: brandMobileInfos){

mapper . updateby conditions(brandMobileInfo);

}

返回brandMobileInfos

}

這部分是服務(wù)層的代碼,用于讀取excel信息后更新數(shù)據(jù)庫(kù)數(shù)據(jù)。我在這里用mybatis。定義一個(gè)類BrandMobileInfoEntity,該類使用并保存excel表格的每一行的信息,而List BrandMobileInfoEntity保存所有的信息,并用這些信息更新數(shù)據(jù)庫(kù)。

B.讀取excel信息

private ListBrandMobileInfoEntity readBrandPeriodSorXls(InputStream is)

引發(fā)IOException,ParseException {

HSSFWorkbook hssfWorkbook新建hssf workbook(is);

ListBrandMobileInfoEntity brandMobileInfos new ArrayListBrandMobileInfoEntity();

BrandMobileInfoEntity brandMobileInfo;

//循環(huán)工作表工作表

for (int num sheet 0;

numSheet();numSheet ) {

hssf sheet hssf sheet(num sheet);

if (hssfSheet null) {

繼續(xù);

}

//循環(huán)行

for(int rowNum 1;rowNum();rowNum ) {

brandMobileInfo new BrandMobileInfoEntity();

HSS flow HSS flow(rowNum);

for(int I 0;I();i ) {

hssf cell brandIdHSSFCell(I);

如果(i 0) {

(整數(shù)

(getCellValue(brandIdHSSFCell));

} else if (i 1) {

繼續(xù);

} else if(I ^ 2){

((getCellValue(brandIdHSSFCell)));

} else if (i 3) {

((getCellValue(brandIdHSSFCell)));

} else if (i 4) {

(getCellValue(brandIdHSSFCell));

} else if (i 5) {

(getCellValue(brandIdHSSFC

contextparam元素的父元素是?

context-param元素包含一對(duì)參數(shù)名和參數(shù)值,它們用作應(yīng)用程序的ServletContext上下文的初始化參數(shù)。參數(shù)名稱在整個(gè)Web應(yīng)用程序中必須是唯一的。