Hutool Java 工具類庫(kù)導(dǎo)出 Excel,超級(jí)簡(jiǎn)單!
來(lái)源:toutiao.com/i6771298852050829835
在開(kāi)發(fā)應(yīng)用系統(tǒng)的時(shí)候,導(dǎo)出文件是必不可放的功能。
以前用過(guò)POI、easyexcel等工具的導(dǎo)入導(dǎo)出功能,但總感覺(jué)太麻煩了,代碼特別多,感覺(jué)并不是很好用。
今天給大家介紹一款新工具,java工具類庫(kù)Hutool。
Hutool簡(jiǎn)介
Hutool是一個(gè)小而全的Java工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語(yǔ)言般的優(yōu)雅,讓使用者更輕松。
Hutool中的工具方法來(lái)自于每個(gè)用戶的精雕細(xì)琢,它涵蓋了Java開(kāi)發(fā)底層代碼中的方方面面,它既是大型項(xiàng)目開(kāi)發(fā)中解決小問(wèn)題的利器,也是小型項(xiàng)目中的效率擔(dān)當(dāng);
Hutool是項(xiàng)目中“util”包友好的替代,它節(jié)省了開(kāi)發(fā)人員對(duì)項(xiàng)目中公用類和公用工具方法的封裝時(shí)間,使開(kāi)發(fā)專注于業(yè)務(wù),同時(shí)可以最大限度的避免封裝不完善帶來(lái)的bug。
首先在POM.xml中加入GAV
<dependency>
????<groupId>cn.hutoolgroupId>
????<artifactId>hutool-allartifactId>
????<version>5.0.7version>
dependency>
<dependency>
????<groupId>org.apache.poigroupId>
????<artifactId>poi-ooxmlartifactId>
????<version>4.1.1version>
dependency>
<dependency>
????<groupId>org.apache.poigroupId>
????<artifactId>poi-ooxml-schemasartifactId>
????<version>3.17version>
dependency>
然后在控制層使用就行
@RequestMapping("/export")
@ResponseBody
public?void?export(HttpServletResponse?response){
?List?list?=?new?ArrayList<>();
?list.add(new?User("zhangsan","1231",new?Date()));
?list.add(new?User("zhangsan1","1232",new?Date()));
?list.add(new?User("zhangsan2","1233",new?Date()));
?list.add(new?User("zhangsan3","1234",new?Date()));
?list.add(new?User("zhangsan4","1235",new?Date()));
?list.add(new?User("zhangsan5","1236",?DateUtil.date(new?Date())));
?//?通過(guò)工具類創(chuàng)建writer,默認(rèn)創(chuàng)建xls格式
?ExcelWriter?writer?=?ExcelUtil.getWriter();
?//自定義標(biāo)題別名
?writer.addHeaderAlias("name",?"姓名");
?writer.addHeaderAlias("age",?"年齡");
?writer.addHeaderAlias("birthDay",?"生日");
?//?合并單元格后的標(biāo)題行,使用默認(rèn)標(biāo)題樣式
?writer.merge(2,?"申請(qǐng)人員信息");
?//?一次性寫(xiě)出內(nèi)容,使用默認(rèn)樣式,強(qiáng)制輸出標(biāo)題
?writer.write(list,?true);
?//out為OutputStream,需要寫(xiě)出到的目標(biāo)流
?//response為HttpServletResponse對(duì)象
?response.setContentType("application/vnd.ms-excel;charset=utf-8");
?//test.xls是彈出下載對(duì)話框的文件名,不能為中文,中文請(qǐng)自行編碼
?String?name?=?StringUtils.toUtf8String("申請(qǐng)學(xué)院");
?response.setHeader("Content-Disposition","attachment;filename="+name+".xls");
?ServletOutputStream?out=?null;
?try?{
??out?=?response.getOutputStream();
??writer.flush(out,?true);
?}
?catch?(IOException?e)?{
??e.printStackTrace();
?}
?finally?{
??//?關(guān)閉writer,釋放內(nèi)存
??writer.close();
?}
?//此處記得關(guān)閉輸出Servlet流
?IoUtil.close(out);
}
效果

推薦閱讀
評(píng)論
圖片
表情
