当前位置: 首页 > news >正文

导出列表数据到Excel并下载

Java导出查询到的数据列表为Excel并下载

1.背景

工作中经常有需求,需要把列表的数据导出为Excel并下载。EasyExcel工具可以很好的实现这一需求。

2.实现流程

1.引入EasyExcel依赖包

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version>
</dependency>

2.创建实体VO,添加需要导出的字段并添加注释(根据自己需求创建)

public class UserExcelVo {@ExcelProperty(value = "用户Id")private String userId;@ExcelProperty(value = "用户名称")private String userName;@ExcelProperty(value = "操作时间")private String createTime;
}

3.数据库中查到的实体列表转换成VoList

如果字段有需要特殊处理的,需要调用set方法单独设置。

List<UserExcelVo > userExcelVos = new ArrayList<>();
for (User user : list) {UserExcelVo userExcelVo = new UserExcelVo();BeanUtils.copyProperties(user,userExcelVo);userExcelVos.add(userExcelVo);
}

4.使用EasyExcel工具导出数据

public void export(List<UserExcelVo > userExcelVos ,HttpServletResponse response){String fileName = "用户记录.xlsx";try {response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "utf-8"));OutputStream outputStream =response.getOutputStream();EasyExcel.write(outputStream,UserExcelVo.class).sheet("用户记录").doWrite(userExcelVos);}catch (Exception e){log.error("导出用户记录失败,原因: {}",e.getMessage());throw new ServiceException("导出用户记录数据失败");}}

Controller层和业务层逻辑按自己需求完善,有更好的方法欢迎分享。

http://www.lryc.cn/news/475099.html

相关文章:

  • 基于NVIDIA NIM平台实现盲人过马路的demo(一)
  • 美格智能5G车规级通信模组:以连接+算力驱动智能化进阶
  • [MRCTF2020]PYWebsite1
  • 无源元器件-磁珠选型参数总结
  • 宝顶白芽,慢生活的味觉盛宴
  • 已知三角形三边长求面积用仓颉语言作答
  • 【JavaScript】匿名函数及回调函数总结
  • HTML鼠标移动的波浪线动画——页面将会初始化一个Canvas元素,并使用JavaScript代码在Canvas上绘制响应鼠标移动的波浪线动画
  • 树莓派开发相关知识八-其他传感器
  • ComfyUI - ComfyUI 工作流中集成 SAM2 + GroundingDINO 处理图像与视频 教程
  • STM32G4 双ADC模式之常规同步模式独立注入模式
  • 深入理解网络协议:OSPF、VLAN、NAT与ACL详解
  • idea 配置tomcat 服务
  • .net core 接口,动态接收各类型请求的参数
  • 关注!这些型号SSD有Windows蓝屏问题需要修复
  • go语言gin框架平滑关闭——思悟项目技术2
  • K8S flannel网络模式对比
  • Vue前端框架:Vue前端项目文件目录
  • git回滚到指定的提交
  • 手机怎么玩森林之子?远程玩森林之子教程
  • 深度学习之网络与计算
  • 《JVM第1课》Java 跨平台原理
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30
  • 加强版 第五节图像处理与视频分析
  • Orleans8.2入门测试
  • 【Linux 25】网络套接字 socket 概念
  • python openai 通过Function Call 创建自动化任务
  • 设计模式之责任链的通用实践思考
  • 前端用canvas绘图并支持下载
  • 【Mac】Homebrew