POI EL表示式 Excel匯出功能

2021-07-08 11:19:33 字數 4106 閱讀 3375

在做專案的過程中,用

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 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...

中綴表示式 字首表示式 字尾表示式

中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...