比POI好用的EasyExcel简单使用记录

今天看到了一篇文章说了POIEasyExcel的区别(说的是EasyExcel是基于java的简单、省内存的Excel),因为我只用过POI,所以想试一下EasyExcel如何使用,所以才有了这篇文章

EasyExcel的官方文档地址:https://www.yuque.com/easyexcel/doc/easyexcel

1、引入依赖

 
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        

        
        
            com.alibaba
            easyexcel
            2.2.4
        
        
    

2、配置mysql数据库信息并使用代码生成器生成dao文件

2.1 在application.yml中配置数据库信息

spring:
  datasource:
    url: jdbc:mysql://ip:port/dbName?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
    username: username #你自己的用户名
    password: password #你自己的密码
  application:
    name: excel-demo


server:
  port: 8081
# xml的位置
mybatis-plus:
  mapper-locations: classpath:/mapper/*.xml  

2.2 使用mybatisPlus的代码生成器生成servicedaomapper等文件

详情请看我上一篇文章《MybatisPlus 代码生成器》

结果:

image

3、测试导出excel的功能

3.1、TestController.java

/**
 * @author miao
 */
@RestController
@RequestMapping("/test")
public class TestController {

    @Resource
    private IUserService userService;

    @RequestMapping("/request")
    private String test() {
        return "ok";
    }

    @RequestMapping("/download")
    private void download(HttpServletResponse response) {
        List list = userService.list();

        // 写法1
        String fileName = System.currentTimeMillis() + ".xlsx";
        try {
            
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
            ServletOutputStream out = response.getOutputStream();

            EasyExcel.write(response.getOutputStream(), UserVo.class)
                    .sheet("sheet")
                    .doWrite(list);

        } catch (IOException e) {

            throw new RuntimeException("导出文件失败!");
        }

    }
}

3.2 请求地址 http://localhost:8081/test/request

结果:


image

测试成功了,但是这个排版还是太丑了,是可以自己设置表头的,但是我没有研究,等有时间再研究吧!希望大家点个赞吧,代码地址放在下面,有问题的可以留言交流哟

github地址:https://github.com/miaomk/EasyExcel-demo

你可能感兴趣的:(比POI好用的EasyExcel简单使用记录)