写点什么

hutool 如何实现数据导出到 Excel

用户头像
卢卡多多
关注
发布于: 3 小时前
hutool如何实现数据导出到Excel

今天我们来讲讲熟知的 HUTOOL 如何展示导出的数据文件, 这里我们用 Excel 的导出方式,作为方案进行;


背景:

用户想要将数据直观的统计,展示,不喜欢看一行行的数据对比, 想要总结一份表格,然后给老板做汇报,这里就体现出个人化 Excel 报告图标的展示了,其中特殊字段,展示格式等都需要去调整;


Hutool 将 Excel 写出封装为ExcelWriter,其中将之前 POI 的底层封装好,支持的版本更好,

其中我们先开始添加依赖:


<dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>${poi.version}</version></dependency>
//我们只需要单纯的poi<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-poi</artifactId> <version>4.3.5</version></dependency>
复制代码


根据这个依赖,我们直接可以使用 EXCEL


1.添加依赖

这里我主要写的是关于导出文件,response 流是处理,也就是直接发送到 servlet 客户端下载;


我们将数据放在文件中,文件发送在返回流中;


// 通过工具类创建writer,默认创建xls格式ExcelWriter writer = ExcelUtil.getWriter();// 一次性写出内容,使用默认样式,强制输出标题writer.write(rows, true);//out为OutputStream,需要写出到的目标流
//response为HttpServletResponse对象response.setContentType("application/vnd.ms-excel;charset=utf-8"); //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码response.setHeader("Content-Disposition","attachment;filename=test.xls"); ServletOutputStream out=response.getOutputStream();
writer.flush(out, true);// 关闭writer,释放内存writer.close();//此处记得关闭输出Servlet流IoUtil.close(out);
复制代码


2.注意 IO 关闭

导出的时候,将 IO 关闭

private void write(ExcelWriter writer, HttpServletResponse response) {        OutputStream out = null;        try {            out = response.getOutputStream();            writer.flush(out);            // 关闭writer,释放内存            writer.close();            // 此处记得关闭输出Servlet流            IoUtil.close(out);        } catch (IOException e) {            log.error("数据导出异常", e);        } finally {            IoUtil.close(out);        }    }
复制代码


对于数据如何写入文件:

3.数据写入

最主要要的方法是:

ExcelWriter writer = ExcelUtil.getWriter(true);        this.exportWriter(writer);        writer.write(rows);
复制代码


其中 row 就是将我们自己的数据写入 Excel 中去,

List<Test> rows = CollUtil.newArrayList();
//新建了一个数据集,对于写入数据,一次按照每行去创建就可以了
复制代码


因为官网的例子已经很明确了,上述的代码是我在企业中实际开发中遇到的,希望你可帮助到你,


https://www.hutool.cn/docs/#/poi/Excel%E7%94%9F%E6%88%90-ExcelWriter(excel 数据生成)

发布于: 3 小时前阅读数: 3
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
hutool如何实现数据导出到Excel