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

alibaba EasyExcel 简单导出数据到Excel

导入依赖

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

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

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层

   @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

@Data
public class OpreationLogEntity{@ExcelIgnoreprivate Long id;@ExcelProperty("账号")private String opreCode;private String sysModule;
}

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

相关文章:

  • 创建vue3项目
  • 侯捷C++面向对象高级编程(上)-9-扩展补充:类模板、函数模板及其他
  • 哪些独立站外链策略最有效?
  • 压测jmeter 插件 之 tps和响应时间图
  • mysql 一主多从环境搭建
  • (C++哈希表01)
  • java springboot监听事件和处理事件
  • C#委托事件的实现
  • RNN文献综述
  • CC2530寄存器编程学习笔记_点灯
  • C编程使用clock函数实现计算一段代码的执行时间:毫秒单位
  • 17.分频器设计拓展练习-任意分频通用模块
  • XML Schema 属性
  • 揭秘:离心风机风量背后的科学原理
  • 没什么事情,随记一下 -出差
  • __proto__ 和 prototype的关系
  • 77. Combinations
  • export和import的用法总结
  • gops —— Go 程序诊断分析工具
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript 基础知识 - 入门篇(一)
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Laravel 实践之路: 数据库迁移与数据填充
  • MYSQL 的 IF 函数
  • Redis 中的布隆过滤器
  • Spring-boot 启动时碰到的错误
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 开源地图数据可视化库——mapnik
  • 聊聊directory traversal attack
  • 算法系列——算法入门之递归分而治之思想的实现
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 自定义函数
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​渐进式Web应用PWA的未来
  • #mysql 8.0 踩坑日记
  • $GOPATH/go.mod exists but should not goland
  • (09)Hive——CTE 公共表达式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (3)llvm ir转换过程
  • (6)添加vue-cookie
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三十五)大数据实战——Superset可视化平台搭建
  • (五十)第 7 章 图(有向图的十字链表存储)
  • . NET自动找可写目录
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .form文件_SSM框架文件上传篇
  • .gitignore不生效的解决方案
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 连接达梦数据库开发环境部署
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)