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);
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!