?歷史文章(文章累計(jì)470+)
《國內(nèi)最全的Spring?Boot系列之一》
《國內(nèi)最全的Spring?Boot系列之二》
《國內(nèi)最全的Spring?Boot系列之三》
《國內(nèi)最全的Spring?Boot系列之四》
《國內(nèi)最全的Spring?Boot系列之五》
《國內(nèi)最全的Spring?Boot系列之六》
【EasyPoi實(shí)戰(zhàn)系列】Spring Boot使用EasyPoi動(dòng)態(tài)控制導(dǎo)出的列 - 第471篇
100萬數(shù)據(jù)導(dǎo)出,居然爆炸了OutOfMemoryError?【EasyPoi實(shí)戰(zhàn)系列】- 第472篇
導(dǎo)出下拉列表的兩種小技巧【EasyPoi實(shí)戰(zhàn)系列】- 第473篇
數(shù)據(jù)脫敏/換行/枚舉的處理【EasyPoi實(shí)戰(zhàn)系列】- 第474篇
悟纖:師傅,我發(fā)現(xiàn)一個(gè)挺麻煩的問題。
師傅:怎么說?
悟纖:就是這個(gè)很多時(shí)候,這個(gè)Excel的樣式是很復(fù)雜的,用代碼生成Excel的方式對(duì)于處理比較復(fù)雜的樣式,就有點(diǎn)愛莫能助。
師傅:這個(gè)時(shí)候,使用模板導(dǎo)出的方式就很有必要了,定義好一個(gè)模板,然后使用類似el表達(dá)的方式指定單元格的位置,這樣樣式就可以在模板文件進(jìn)行編輯了。
悟纖:如果可以這么實(shí)現(xiàn)真的是再好不過了,師傅我已經(jīng)按耐不住了,趕緊帶我飛。
師傅:扶好把手,準(zhǔn)備啟程。
導(dǎo)讀
Hi,大家好,我是悟纖。
我就是我,不一樣的煙火。我就是我,與眾不同的小蘋果。
模板是處理復(fù)雜Excel的簡(jiǎn)單方法,復(fù)雜的Excel樣式,可以用Excel直接編輯,完美的避開了代碼編寫樣式的雷區(qū),同時(shí)指令的支持,也提了模板的有效性。
說明:本節(jié)的例子的導(dǎo)出實(shí)體類是基于前面的章節(jié)的實(shí)體類進(jìn)行使用的,所以看的有點(diǎn)蒙圈的小伙伴可以查看前面的文章:
????????????EasyPoi實(shí)戰(zhàn)系列:
01.《【EasyPoi實(shí)戰(zhàn)系列】Spring Boot集成EasyPoi -?第467篇》
02.《【EasyPoi實(shí)戰(zhàn)系列】Spring Boot使用EasyPoi的注解讓表格更漂亮以及圖片的導(dǎo)出?-?第468篇》
03.《【EasyPoi實(shí)戰(zhàn)系列】Spring Boot使用EasyPoi實(shí)現(xiàn)一對(duì)多的導(dǎo)出?-?第469篇》
04.《【EasyPoi實(shí)戰(zhàn)系列】Spring Boot使用EasyPoi實(shí)現(xiàn)多Sheet導(dǎo)出?-?第470篇》
05.《【EasyPoi實(shí)戰(zhàn)系列】Spring Boot使用EasyPoi動(dòng)態(tài)控制導(dǎo)出的列?-?第471篇》
06.《100萬數(shù)據(jù)導(dǎo)出,居然爆炸了OutOfMemoryError?【EasyPoi實(shí)戰(zhàn)系列】-?第472篇》
07.《導(dǎo)出下拉列表的兩種小技巧【EasyPoi實(shí)戰(zhàn)系列】-?第473篇》
08.《數(shù)據(jù)脫敏/換行/枚舉的處理【EasyPoi實(shí)戰(zhàn)系列】-?第474篇》
一、EasyPoi支持的指令
EasyPoi支持的指令以及作用,最主要的就是各種fe的用法:
·?空格分割
·?三目運(yùn)算?{{test ? obj:obj2}}
·?n:?表示?這個(gè)cell是數(shù)值類型?{{n:}}
·?le:?代表長(zhǎng)度{{le:()}}?在if/else?運(yùn)用{{le:() > 8 ? obj1 : obj2}}
·?fd:?格式化時(shí)間?{{fd:(obj;yyyy-MM-dd)}}
·?fn:?格式化數(shù)字?{{fn:(obj;###.00)}}
·?fe:?遍歷數(shù)據(jù),創(chuàng)建row
·?!fe:?遍歷數(shù)據(jù)不創(chuàng)建row
·?$fe:?下移插入,把當(dāng)前行,下面的行全部下移.size()行,然后插入
·?#fe:?橫向遍歷
·?v_fe:?橫向遍歷值
·?!if:?刪除當(dāng)前列?{{!if:(test)}}
·?單引號(hào)表示常量值?‘’?比如’1’?那么輸出的就是?1
·?&NULL&?空格
·?&INDEX&?表示循環(huán)中的序號(hào),自動(dòng)添加
·?]]?換行符?多行遍歷導(dǎo)出
·?sum:?統(tǒng)計(jì)數(shù)據(jù)
·?cal:?基礎(chǔ)的+-X%?計(jì)算
·?dict:?字典
·?i18n:?國際化
二、模板基本導(dǎo)出
看一個(gè)常見的到處模板–專項(xiàng)支出用款申請(qǐng)書:
這里面有正常的標(biāo)簽以及$fe遍歷,$fe遍歷應(yīng)該是使用最廣的遍歷,用來解決遍歷后下面還有數(shù)據(jù)的處理方式,我們要生成的是這個(gè)需要一些list集合和一些單純的數(shù)據(jù)。
fe的寫法?fe標(biāo)志 冒號(hào)?list數(shù)據(jù) 單個(gè)元素?cái)?shù)據(jù)(默認(rèn)t,可以不寫) 第一個(gè)元素
{{$fe: maplist t t.id }}
看下數(shù)據(jù)代碼,主要是構(gòu)造數(shù)據(jù)TemplateExportParams是主要的參數(shù)數(shù)據(jù):
/**
* 模板導(dǎo)出
* /demoTemplate/exportExcel
* @param response
*/
@GetMapping("/exportExcel")
public void exportExcel(HttpServletResponse response) throws IOException {
TemplateExportParams params = new TemplateExportParams(
"WEB-INF/doc/專項(xiàng)支出用款申請(qǐng)書_map.xls");
?
Map<String, Object> map = new HashMap<String, Object>();
map.put("date", "2014-12-25");//申請(qǐng)日期.
map.put("money", 2000000.00);//合計(jì)
map.put("upperMoney", "貳佰萬");//核定金額合計(jì)(大寫)
map.put("company", "悟纖科技有限公司");//申請(qǐng)支付單位
map.put("bureau", "財(cái)政局");//××局
map.put("person", "悟纖");//聯(lián)系人
map.put("phone", "1388888****");//聯(lián)系電話
List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
for (int i = 0; i < 4; i++) {
Map<String, String> lm = new HashMap<>();
lm.put("id", i + 1 + "");
lm.put("zijin", i * 10000 + "");
lm.put("bianma", "A001");//編碼
lm.put("mingcheng", "設(shè)計(jì)");//名稱
lm.put("xiangmumingcheng", "EasyPoi " + i + "期");//項(xiàng)目名稱
lm.put("quancheng", "開源項(xiàng)目");//全稱
lm.put("sqje", i * 10000 + "");//申請(qǐng)金額
lm.put("hdje", i * 10000 + "");//核定金額
?
listMap.add(lm);
}
map.put("maplist", listMap);
?
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
ExcelUtil.downLoadExcel("專項(xiàng)支出用款申請(qǐng)書.xlsx",response,workbook);
}
?
說明:要準(zhǔn)備模板文件《專項(xiàng)支出用款申請(qǐng)書_map.xls》
輸出的效果:
我就是我,是顏色不一樣的煙火。
我就是我,是與眾不同的小蘋果。
à悟纖學(xué)院:https://t.cn/Rg3fKJD
學(xué)院中有Spring?Boot相關(guān)的課程!點(diǎn)擊「閱讀原文」進(jìn)行查看!
SpringBoot視頻:http://t.cn/A6ZagYTi
SpringBoot交流平臺(tái):https://t.cn/R3QDhU0
SpringSecurity5.0視頻:http://t.cn/A6ZadMBe
ShardingJDBC分庫分表:http://t.cn/A6ZarrqS
分布式事務(wù)解決方案:http://t.cn/A6ZaBnIr
JVM內(nèi)存模型調(diào)優(yōu)實(shí)戰(zhàn):http://t.cn/A6wWMVqG
Spring入門到精通:https://t.cn/A6bFcDh4文章來源:http://www.zghlxwxcb.cn/news/detail-500210.html
大話設(shè)計(jì)模式之愛你:https://dwz.cn/wqO0MAy7文章來源地址http://www.zghlxwxcb.cn/news/detail-500210.html
到了這里,關(guān)于模板文件導(dǎo)出Excel【EasyPoi實(shí)戰(zhàn)系列】- 第478篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!