前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hutool 超强工具类使用 & 导出excel

Hutool 超强工具类使用 & 导出excel

作者头像
收心
发布2022-01-14 08:55:56
2.4K0
发布2022-01-14 08:55:56
举报
文章被收录于专栏:Java实战博客

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

POM

代码语言:javascript
复制
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.9</version>
</dependency>

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

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

代码语言:javascript
复制
     @Alias("企业名")
    private String companyName;

导出到本地Excel

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

代码语言:javascript
复制
//获取的对象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格式)

代码语言:javascript
复制
//获取的对象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)创建。

代码语言:javascript
复制
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的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • POM
  • 如果需要设置导出的表格名称 请设置
  • 导出到本地Excel
  • 导出到前端下载(.xls格式)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档