zoukankan      html  css  js  c++  java
  • SpringBoot+EasyExcel实现Excel的导出

    转自:http://www.dreamwu.com/post-425.html

    今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈!

    今天心血来潮,突然想起很久以前的一个导出excel的功能,以前用的poi感觉挺麻烦的!今天就简单写下EasyExcel版本的,EasyExcel是阿里的一个开源框架!github地址https://github.com/alibaba/easyexcel大家也可以下载下来看看源码!我这里只做了一个简单的demo!

    EasyExcel和POI的对比

    1、相比于POI,EasyExcel简化了开发量,能够用更少的代码实现更多的功能

    2、相比于POI,EasyExcel使用简单

    3、相比于POI,EasyExcel能够使用更少的内存占用

    首先我们创建一个springboot项目,在此就不过多的啰嗦,创建好之后,首先需要引入easyexcel的包!

    引入依赖

    <!--easyexcel-->
    <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>easyexcel</artifactId>
     <version>1.1.2-beta5</version>
    </dependency>
    

    实体类

    @Data
    public class Users extends BaseRowModel {
     @ExcelProperty(value = {"主键ID"}, index = 0)
     private String id;
     @ExcelProperty(value = {"用户姓名"}, index = 1)
     private String name;
     @ExcelProperty(value = {"用户年龄"}, index = 2)
     private String age;
    }
    

    Controller层

    @RequestMapping("/exportExcel")
    public void export(HttpServletResponse response) throws IOException {
     List<Users> list = userService.findAllUser();
     ServletOutputStream out = response.getOutputStream();
     ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);
     String fileName = "测试exportExcel";
     Sheet sheet = new Sheet(1, 0,Users.class);
     //设置自适应宽度
     sheet.setAutoWidth(Boolean.TRUE);
     // 第一个 sheet 名称
     sheet.setSheetName("第一个sheet");
     writer.write(list, sheet);
     //通知浏览器以附件的形式下载处理,设置返回头要注意文件名有中文
     response.setHeader("Content-disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) + ".xlsx");
     writer.finish();
     response.setContentType("multipart/form-data");
     response.setCharacterEncoding("utf-8");
     out.flush();
    }
    

    看下效果吧!

    SpringBoot+EasyExcel实现Excel的导出

    SpringBoot+EasyExcel实现Excel的导出

    EasyExcel的确要比poi操作简单的多!

  • 相关阅读:
    oracle grant授权的理解
    SQL SERVER 2005 版本以上 CTE递归查询的实现
    常用的加密解密技术之——【加密原理】
    常用的汇编指令
    常用加密解密技术之——【DES算法实现过程分析】
    VC6.0编译器中混有.c文件时出现fatal error C1853错误解决办法
    C++ Primer读书笔记
    Shot(数学+物理题,不简单)
    [置顶] C++/C 数据类型的取值范围
    <fzu1922>非主流
  • 原文地址:https://www.cnblogs.com/sharpest/p/13712628.html
Copyright © 2011-2022 走看看