Hutool参考文档官网:https://www.hutool.cn/docs/#/

POM

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.9</version>
</dependency>

如果需要设置导出的表格名称 请设置

将来 导出数据的时候 就会直接 将companyName 的列名 叫为 企业名

     @Alias("企业名")
    private String companyName;

导出到本地Excel

首先通过 Mybatis 获取到对象的 List 集合

//获取的对象List即可
List<Object> user;
//将对象填充到数组rows
List<TestBean> rows = CollUtil.newArrayList(user.toArray());

上面的内容就是获取一个对象的集合,你自己mybatis的查询集合 直接用。

// 通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter("d:/writeBeanTest.xlsx");
// 合并单元格后的标题行,使用默认标题样式
writer.merge(4, "一班成绩单");
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
// 关闭writer,释放内存
writer.close();

导出到前端下载(.xls格式)

//获取的对象List即可
List<Object> user;
//将对象填充到数组rows
List<TestBean> rows = CollUtil.newArrayList(user.toArray());

上面的内容就是获取一个对象的集合,你自己mybatis的查询集合 直接用。

// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter();
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);

//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8"); 
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition","attachment;filename=test.xls"); 
//out为OutputStream,需要写出到的目标流
ServletOutputStream out=response.getOutputStream(); 

writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);

注意 ExcelUtil.getWriter()默认创建xls格式的Excel,因此写出到客户端也需要自定义文件名为XXX.xls,否则会出现文件损坏的提示。 若想生成xlsx格式,请使用ExcelUtil.getWriter(true)创建。

ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(rows, true);

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); 
response.setHeader("Content-Disposition","attachment;filename=test.xlsx"); 

writer.flush(out, true);
writer.close();
IoUtil.close(out);