alibaba EasyExcel 简单导出数据到Excel

导入依赖

java 复制代码
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>easyexcel</artifactId>
     <version>4.0.1</version>
</dependency>

1、alibaba.excel.EasyExcel导出工具类

java 复制代码
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;

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

public class ExcelUtil {

    /**
     * 导出excel
     *
     * @param response 响应
     * @param list 数据集
     * @param clazz 类名
     * @param fileName 文件名
     * @return
     */
    public static<T> void exportExcel(HttpServletResponse response, List<T> list, Class<T> clazz, String fileName) {
        try {
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8") + ".xlsx");
            EasyExcel.write(response.getOutputStream(), clazz)
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())//自适应表格格式
                    .sheet("sheet1")
                    .doWrite(list);
        }catch (Exception e){
            throw new RuntimeException(e.getMessage());
        }
    }
}

2、controller层

java 复制代码
   @GetMapping("/export")
    public void exportExcel(HttpServletResponse response,OpreationLogEntity opreationLogEntity){
        List<OpreationLogEntity> oprLogList = opreationLogService.findOprLogList(opreationLogEntity);
        ExcelUtil.exportExcel(response,oprLogList,OpreationLogEntity.class,"系统日志");
    }

3、实体类字段加上注解:

(1)@ExcelIgnore:表示忽略导出该字段数据

(2)@ExcelProperty("账号"):导出对应的字段数据,并且设置Excel属性表头名,

举例--对应的表头名为:账号

(3)不加注解:例如sysModule字段,会导出该数据,但是表头名为sysModule

java 复制代码
@Data
public class OpreationLogEntity{

    @ExcelIgnore
    private Long id;

    @ExcelProperty("账号")
    private String opreCode;

    private String sysModule;
}

3、测试:浏览器地址栏输入url即可导出成功

相关推荐
2301_815091012 分钟前
TCP 并发服务器模型:4 种 IO 模型完整梳理
服务器·网络·tcp/ip
斑马13912 分钟前
Linux软件编程学习笔记(十二)——TCP并发服务器模型
java·服务器·网络
冬栈程序设计16 分钟前
Springboot宿舍管理系统【670099】 -附源码(开箱即用)
java·毕业设计·springboot·课程设计·程序设计·大作业
2601_9622845024 分钟前
北京Java全栈开发培训 Web前端开发 软件测试就业培训班
java·软件测试·web前端·全栈开发·就业培训
小小尚@40 分钟前
WebGIS/ECharts 地图开发|MapLand 在线行政区划边界一键下载 GeoJSON 工具
前端·javascript·echarts
qiaosaifei1 小时前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言
聪明蛋子哟1 小时前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
文子越来越强1 小时前
【双因子认证】拦截注解@MFACheck 接入指南(其他微服务如何用)
java
C+ 安口木1 小时前
Alibaba Cloud Linux 3 服务器环境搭建实战记录
linux·运维·服务器
聚搜云——JuSouClouD1 小时前
杭州腾讯云代理商:腾讯云2核4G服务器够用吗?网站、API和开发测试怎么选
服务器·云计算·腾讯云