欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

SpringBoot进阶教程(八十五)最简洁的excel导出,它能让你在不用考虑性

来源: javaer 分享于  点击 43224 次 点评:28

SpringBoot进阶教程(八十五)最简洁的excel导出,它能让你在不用考虑性


EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。今天我们就快速实现一个excel的导出。非常简洁。

v添加引用

 <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>easyexcel</artifactId>
       <version>2.1.6</version>
</dependency>

v实体类加注解

@Data
public class Info {
    @ExcelProperty("编号")
    private int id;
    @ExcelProperty("名称")
    private String name;
}

如果是直接导出字段名作为列明,这一步可以省略。

v导出接口

将响应数据设置为excel格式。写入数据。Easyexcle提供了API供用户使用,只需要一行代码就能够将List列表转化为Excel文件。write方法指定输出流和写入数据的class对象;sheet方法指定excel的sheet名称;doWrite则指定写入的列表数据。

    @GetMapping("excel")
    public void excel(HttpServletResponse response) {
        try {
            // 准备数据
            List<Info> infoList = infoService.getInfoList();

            if(!CollectionUtils.isEmpty(infoList)) {
                // 设置响应
                response.setContentType("application/vnd.excel");
                response.setCharacterEncoding("utf-8");
                String fileName = URLEncoder.encode("file" + LocalDate.now(), "UTF-8").replaceAll("\\+", "%20");
                response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");

                // 写入数据
                EasyExcel.write(response.getOutputStream(), AnchorData.class).sheet("sheet1").doWrite(infoList);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这里直接请求excel接口就可以下载了,效果比较简单直接,这里就不截图了。

v源码地址

https://github.com/toutouge/javademosecond/tree/master/hellolearn


作  者:请叫我头头哥
出  处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

相关栏目:

用户点评