來源:toutiao.com/i6771298852050829835
前言在開發應用系統的時候,導出文件是必不可放的功能。
以前用過POI、easyexcel等工具的導入導出功能,但總感覺太麻煩了,代碼特別多,感覺並不是很好用。
今天給大家介紹一款新工具,java工具類庫Hutool。
Hutool簡介Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓使用者更輕鬆。
Hutool中的工具方法來自於每個用戶的精雕細琢,它涵蓋了Java開發底層代碼中的方方面面,它既是大型項目開發中解決小問題的利器,也是小型項目中的效率擔當;
Hutool是項目中「util」包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注於業務,同時可以最大限度的避免封裝不完善帶來的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())));
// 通過工具類創建writer,默認創建xls格式
ExcelWriter writer = ExcelUtil.getWriter();
//自定義標題別名
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("age", "年齡");
writer.addHeaderAlias("birthDay", "生日");
// 合併單元格後的標題行,使用默認標題樣式
writer.merge(2, "申請人員信息");
// 一次性寫出內容,使用默認樣式,強制輸出標題
writer.write(list, true);
//out為OutputStream,需要寫出到的目標流
//response為HttpServletResponse對象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是彈出下載對話框的文件名,不能為中文,中文請自行編碼
String name = StringUtils.toUtf8String("申請學院");
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 {
// 關閉writer,釋放內存
writer.close();
}
//此處記得關閉輸出Servlet流
IoUtil.close(out);
}效果看到這裡就已經結束了,是不是很簡單?
強大,10k+點讚的 SpringBoot 後臺管理系統竟然出了詳細教程!
分享一套基於SpringBoot和Vue的企業級中後臺開源項目,代碼很規範!
能掙錢的,開源 SpringBoot 商城系統,功能超全,超漂亮!