擴充套件Struts2,傻瓜化將資料匯出為excel

2021-08-23 15:11:53 字數 1625 閱讀 8931

以前做開發,在有資料匯出為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 對應的處理請...