以前做開發,在有資料匯出為excel的時候,不加思索就乙個cell乙個cell地拼湊完成乙個excel記憶體流,輸入出到客戶端了事,有天想這些**80%都是重複的,能不能不那麼麻煩地ctrl c、ctrl v來做這件事。嘗試了下,還可以。(**部份中是演示)
首先定義乙個annotation
@retention(retentionpolicy.runtime)
public @inte***ce excel
在需要匯出為excel的類上加上此excel註解,如:
class user
private string name;
private integer age;
@excel(title = "姓名")
public string getname()
public void setname(string name)
@excel(title = "年齡")
public integer getage()
public void setage(integer age)
}
現在相當於配置內容有了,只需寫乙個工具類,完成向excel資料格式的轉換。
這有個簡單實現:
public static void export(list list, outputstream os) catch (exception e)
}private static void builderexcel(hashtabledata,
listtitles, int len, outputstream os) throws exception
for (int i = 0; i < len; i++)
else if(o instanceof double)
else if(o instanceof date)
ws.addcell(labelc);}}
workbook.write();
workbook.close();
}private static hashtable parsedata(list list, list titles)
try catch (illegalargumentexception e) catch (illegalacces***ception e) catch (invocationtargetexception e)
data.put(title, cols);}}
}return data;}}
最後一步,擴充套件struts2的resulttype.
現在看看程式設計師需要做的事:
listuserlist = userservice.findall();
request.setattribute("datalist",userlist);
在struts2的配置檔案中加入
當然你得在需要匯出的類中加入excel的註解和定義一下excel的resulttype.
將Struts應用遷移到Struts 2 一
大多數人都會熟悉struts,無論是從專案實戰中獲得的經驗還是從書中了解到的知識。在這一系列文章裡,我們將通過乙個由struts遷移到struts 2的簡單應用例子向大家展現struts 2的所有特徵。在我們開始介紹這個例子之前,你需要去了解一點struts 2的背景知識。文章的第一部分將介紹str...
Struts2學習資料
strust2的核心和工作原理 漂亮回答面試官strust2的原理 struts2的工作原理 struts2的工作原理 總體上來說是這樣的 1 客戶端傳送請求 客戶端初始化乙個指向servlet容器 如tomcat 的請求 2 請求經過一系列過濾器 如actioncontextcleanup sit...
Struts2 資料驅動
name user extends struts default name register class cn.sxt.action.useraction method register name success show.jspresult action package struts 對應的處理請...