Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。
以上内容来自其官网的介绍,今天主要是利用一点时间来简单介绍一下如何使用这个工具库导出excel表格,再也无需担心导表了~
首先我们需要导入下面的三个依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.2.3</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>
随意编写一个测试代码:
@RestController
public class Controller {
@GetMapping("/downloadExcel")
@ResponseBody
public void downLoadFile(HttpServletResponse response) {
List<Employee> employees = new ArrayList<>();
for (int i = 0; i < 10; i++) {
employees.add(new Employee(i + 18, "a" + i));
}
ExcelWriter writer = ExcelUtil.getWriter();
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("age", "年龄");
writer.merge(1, "员工信息表");
writer.write(employees, true);
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String name = StringUtils.toUtf8String("XXX国际贸易公司");
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.close();
}
IoUtil.close(out);
}
}
测试