欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot整合easypoi实现excel导出下载

程序员文章站 2024-03-21 20:21:04
...

首先是需要导出的实体类,需要导出的列要加上@Excel注解

package com.lty.market.pojo.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ToString
public class EasyPoiExcel implements Serializable {

    private Integer userId;

    /**
     * 用户昵称
     */
    @Excel(name = "昵称",width = 20)
    private String nickName;

    /**
     * 真实姓名
     */
    @Excel(name = "真实姓名",width = 20)
    private String realName;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phone;

    /**
     * 用户登录密码
     */
    @Excel(name = "密码",width = 20)
    private String password;
}

因为是简单的示例,这里省略dao层,service层
下面是controller层

@Controller
public class ExportExcel {
    @Resource
    private UserService userService;
    @RequestMapping(value = "export",method = RequestMethod.GET)
    public void exportExcel(HttpServletResponse response) throws Exception{
       List<EasyPoiExcel> easyPoiExcelList=userService.findAll();


       Workbook wb=ExcelExportUtil.exportExcel(new ExportParams("计算机一班学生","学生"), EasyPoiExcel.class, easyPoiExcelList);
       //表名
        String fileName="用户";
        // 设置响应输出的头类型(设置响应类型)
        response.setHeader("content-Type", "application/vnd.ms-excel");
        // 下载文件的默认名称(设置下载文件的默认名称)
        response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8") + ".xls");//因为导出的表名含有汉字这里要转码
        wb.write(response.getOutputStream());

    }
}

访问:localhost:80/export 就可以下载到本地了
这只是最简单的示例,easypoi还有其他各种方式,以后有空更新。

我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它*软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中虽不甘心,却又畏首畏尾。
————————————————