Hutool Java工具類庫(kù)導(dǎo)出Excel,超級(jí)簡(jiǎn)單!
前言
在開(kāi)發(fā)應(yīng)用系統(tǒng)的時(shí)候,導(dǎo)出文件是必不可放的功能。
以前用過(guò)POI、easyexcel等工具的導(dǎo)入導(dǎo)出功能,但總感覺(jué)太麻煩了,代碼特別多,感覺(jué)并不是很好用。
今天給大家介紹一款新工具,java工具類庫(kù)Hutool。
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.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
然后在控制層使用就行
@RequestMapping("/export")
@ResponseBody
public void export(HttpServletResponse response){
List<User> 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);
}
效果

