我是靠谱客的博主 高贵自行车,最近开发中收集的这篇文章主要介绍SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

1.初始化SpringBoot项目

(1)在SpringBoot官网(https://start.spring.io/)初始化一个Springboot工程,然后点击Generate:

 

(2)在IDEA中导入该项目,初始目录如下:

 

(3)在pom.xml中添加easyexcel需要的依赖:

<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.6</version>
</dependency>

 

2.编写实体类Person.java

package com.exceltest.demo.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Data;

import java.util.Date;

@Data
public class Person {

    @ExcelProperty(value = "姓名", index = 0)
    private String name;

    @ExcelProperty(value = "年龄", index = 1)
    private Integer age;

    @ExcelProperty(value = "性别", index = 2)
    private String sex;

    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty(value = "生日", index = 3)
    private Date birthday;

    // 忽略此字段
    @ExcelIgnore
    private String address;

}

 

3.编写自定义工具类ExcelUtil.java

package com.exceltest.demo.utils;

import com.alibaba.excel.EasyExcel;
import com.exceltest.demo.domain.Person;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;

public class ExcelUtil {


    /**2.*版本更新代码
     * excel的 pojo 实体类取消了 继承BaseRowModel.
     *
     */
    public static void writeExcel(HttpServletResponse response, List<?> list, String fileName, String sheetName)throws Exception  {
        EasyExcel.write(getOutputStream(fileName,response), Person.class)
                .sheet(sheetName)
                .doWrite(list);
    }
    /**
     * 导出文件时为Writer生成OutputStream
     * @param fileName
     * @param response
     * @return
     */
    private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
        try {
            fileName = URLEncoder.encode(fileName, "UTF-8");
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf8");
            response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
            response.setHeader("Pragma", "public");
            response.setHeader("Cache-Control", "no-store");
            response.addHeader("Cache-Control", "max-age=0");
            return response.getOutputStream();
        } catch (IOException e) {
            throw new Exception("导出excel表格失败!", e);
        }
    }
}

 

4.编写控制器实现接口调用PersonController.java

package com.exceltest.demo.controller;

import com.exceltest.demo.domain.Person;
import com.exceltest.demo.utils.ExcelUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/person")
public class PersonController {

    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){
        return "hello person";
    }

    @RequestMapping("/exportTest")
    public void exportEnterpriseBillV2(HttpServletResponse response) throws Exception {
        //模模拟sql查出的数据
        Person person = new Person();
        person.setName("Micheal");
        person.setAge(20);
        person.setSex("男");
        person.setBirthday(new Date());
        person.setAddress("AAA");
        Person person2 = new Person();
        person2.setName("Bruce");
        person2.setAge(24);
        person2.setSex("男");
        person2.setBirthday(new Date());
        person2.setAddress("BBB");
        List<Person> list = new ArrayList<>();
        list.add(person);
        list.add(person2);
        ExcelUtil.writeExcel(response, list, "导出测试", "sheet单1");
    }
}

 

5.测试

输入:http://localhost:8080/person/hello,出现如下所示。

输入:http://localhost:8080/person/exportTest,会自动下载文件。

下载的文件内容如下:

 

6.代码结构

 

 

 

 

 

 

最后

以上就是高贵自行车为你收集整理的SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构的全部内容,希望文章能够帮你解决SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部