在做專案的過程中,用
excel
來匯入匯出資料是很常見的事情,這次負責的專案就有這麼乙個功能,使用者想要的需求就是根據不同的查詢條件來實現不同的匯出效果,已便於讀取與儲存。
介面的效果如下:
實現的功能是一樣的。那麼在專案中我們是如何應用的呢?
首先也是分層開發,從頁面
-controller-service-dao
層,其實思路很簡單,我們主要就是通過
el表示式,通過
form
窗體提交的方式將其賦值到匯出
excel
的按鈕中,**如下:
jsp層頁面顯示部分**:
訂單號
search_like_orderno" class="input-medium" maxlength="50"
value="$">
客戶姓名
手機號
(只選擇了三個簡單的控制項來表示)
controller層**:
通過分頁查詢的方式,將jsp頁面的關於search_方式的值觸發顯示:
public void exportexcel( //分頁查詢的一些引數
//獲取分頁查詢的列表
pagetransfers = banktransferservice.list(searchparams, page, integer.max_value, sortname, sortorder);
model.addattribute("transfers", transfers);
int count = 0;
if (transfers != null && transfers.getcontent() != null && transfers.getcontent().size() > 0)
date time = transfer.getcreatedate();//交易時間
string paytype = transfer.getpaytype(); //交易型別
/*2:賬單繳費,3:**, 4:轉賬 5:退款*/
string type = "";
if (paytype.equals("2")) else if (paytype.equals("3")) else if (paytype.equals("4")) else if (paytype.equals("5"))
string statee = transfer.getstatus();//交易狀態
/*將數字轉換成對應的漢字來顯示到excel中*/
string states = "";
if (statee.equals("0")) else if (statee.equals("1")) else if (statee.equals("2")) else if (statee.equals("3"))
string description = transfer.getdescription();//交易備註
string nick = "";
string mobile = "";
listtransferlistitems = banktransferservice.findbymemberid(transfer.getmember().getid());
if (transferlistitems != null && transferlistitems.size() > 0)
}string shopname = "";
listbanktransfers = banktransferservice.findbyshopid(transfer.getshopid());
if (banktransfers != null && banktransfers.size() > 0) }}
string subdistrictname = "";
listbanktransfers1 = banktransferservice.findbysubdistrictid(transfer.getsubdistrictid());
if (banktransfers1 != null && banktransfers1.size() > 0) }}
count++;//序號
hssfrow row = sheet.createrow(count);//建立一行
hssfcell cell00 = row.createcell(0);//建立一列
cell00.setcelltype(hssfcell.cell_type_string);
cell00.setcellvalue("" + count);
hssfcell cell01 = row.createcell(1);//建立一列
cell01.setcelltype(hssfcell.cell_type_string);
cell01.setcellvalue(orderno);
…………
hssfcell cell11 = row.createcell(10);//建立一列
cell11.setcelltype(hssfcell.cell_type_string);
cell11.setcellvalue(description);}}
outputstream os = null;
try catch (exception e) finally
} catch (ioexception e) }}
對於service,只來顯示乙個list,分頁查詢的方法,其他的都是簡單的一些傳值,呼叫
/分頁list方法
public pagelist(mapsearchparams, int page, int pagesize, string sortname, string sortorder)
/*** 建立分頁請求.
*/private pagerequest buildpagerequest(int pagenumber, int pagzsize, string sortname, string sortorder)
if (stringutils.isblank(sortname))
if (stringutils.equalsignorecase(sortorder, "desc")) else
return new pagerequest(pagenumber - 1, pagzsize, sort);
}/**
* 建立動態查詢條件組合.
*/private specificationbuildspecification(mapsearchparams)
通過el表示式,${},eq,like等直接方便了我們**的開發,提高了開發效率,值得好好總結。 EXCEL 使用正規表示式
本文參考 裡常用的幾個正規表示式 正規表示式提取值 ab 1商品名稱 比較典型的原始資料 型號 輸出結果 2 美的 midea 電飯煲 智慧型ih加熱 家用電飯鍋 4l mb fs4006 mb fs4006 3美的 midea 多用途鍋 4.5l 家用電火鍋鴛鴦鍋 1500w mc wlhn32a...
表示式 表示式樹 表示式求值
總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...
中綴表示式 字首表示式 字尾表示式
中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...