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

SpringBoot集成阿里easyexcel(一)基础导入导出

easyexcel主要用于excel文件的读写,可使用model实体类来定义文件读写的模板,对开发人员来说实现简单Excel文件的读写很便捷。可参考官方文档 https://github.com/alibaba/easyexcel

一、引入依赖

 <!-- 阿里开源EXCEL --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dependency>

文档地址:https://www.yuque.com/easyexcel/doc/easyexcel

二、实体

普通导出实体,index的数字为导出的列,为0开始

@Data
public class ProjectExpView {@ExcelProperty(value = "项目编号",index = 0)private String projectCode;@ExcelProperty(value = "项目名称",index = 1)private String projectName;
}

合并单元格导出实体

@Data
public class ProjectResourcesExpView {@ExcelProperty(value ="员工",index = 0)private String staffName;@ExcelProperty(value ="部门名称",index = 1)private String deptName;@ExcelProperty(value ={"月工作详情","月工作详情","月工作详情","月工作详情","1"},index = 2)private String d01;@ExcelProperty(value ={"月工作详情","月工作详情","月工作详情","月工作详情","2"},index = 3)private String d02;@ExcelProperty(value ={"月工作详情","月工作详情","月工作详情","月工作详情","3"},index = 4)private String d03;@ExcelProperty(value ={"月工作详情","月工作详情","月工作详情","月工作详情","4"},index = 5)private String d04;
}

导出样式
在这里插入图片描述
设置行高:@ContentRowHeight(150)作用在类上
设置列宽: @ColumnWidth(25)作用在字段上
忽略导出字段:@ExcelIgnore
设置时间字段导出格式: @DateTimeFormat(“yyyy-MM-dd”)

三、导出

根据查询出来的列表信息导出到页面

    @GetMapping("/export")@ApiOperation("导出XXX信息")public void exportProjectExpView(HttpServletResponse response, HttpServletRequest request) throws IOException {List<ProjectExpView> list = ProjectService.exportList();String name = "XXX信息";response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");response.setHeader("Content-disposition", "attachment;filename=" + new String(name.getBytes("gbk"), StandardCharsets.ISO_8859_1)  + ".xlsx");ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();WriteSheet writeSheet1 = EasyExcel.writerSheet(0, name).head(SyfwEwmExport.class).build();excelWriter.write(list, writeSheet1);excelWriter.finish();}

四、导入

 @PostMapping("/import")@ApiOperation("导入XX信息")public ResponseResult<?> importProject(@RequestParam("file") MultipartFile file)  throws Exception{List<ProjectExpView> list = new ArrayList<>(1);List<ImportErrVo> errMsgList = new ArrayList<>(1);ExcelListener excelListener = new ExcelListener();Object Object1 = ExcelUtil.readExcel(file,ProjectExpView.class,0,excelListener);list = (List<ProjectExpView>) Object1;projectService.importProject(list);return ResponseResult.importSuccess();}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2025考研倒计时 考研时间公布了 你准备好复习冲刺了吗?
  • 直播平台美颜功能开发方案:基于视频美颜SDK的集成详解
  • Java接口和抽象类的区别
  • 计算机组成原理(笔记5原码和补码的乘法以及直接补码阵列乘法器 )
  • 【Kubernetes】常见面试题汇总(二十八)
  • 【每日一题】LeetCode 2306.公司命名(位运算、数组、哈希表、字符串、枚举)
  • 技能深化与软实力双提升
  • Claude 的上下文检索功能提升了 RAG 准确率,这会是人工智能革命?
  • 某建筑市场爬虫数据采集逆向分析
  • pgvector docker版安装;稀疏向量使用;psycopg2 python连接使用
  • C语言究竟是一门怎样的语言?
  • Go语言中的并发编程
  • 24暑假实习信息、25秋招提前批信息,地信、测绘、遥感、地质相关岗位招聘汇总
  • C++标准库双向链表 list 中的insert函数实现。
  • 游戏如何应对云手机刷量问题
  • 【347天】每日项目总结系列085(2018.01.18)
  • JS字符串转数字方法总结
  • Just for fun——迅速写完快速排序
  • v-if和v-for连用出现的问题
  • 近期前端发展计划
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 入门级的git使用指北
  • 硬币翻转问题,区间操作
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #职场发展#其他
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)(1.13) SiK无线电高级配置(五)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (windows2012共享文件夹和防火墙设置
  • (不用互三)AI绘画工具应该如何选择
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (四) 虚拟摄像头vivi体验
  • (算法设计与分析)第一章算法概述-习题
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)ObjectiveC 深浅拷贝学习
  • .NET Core中Emit的使用
  • .NET Reactor简单使用教程
  • .net Stream篇(六)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net访问oracle数据库性能问题
  • .net网站发布-允许更新此预编译站点
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ Linux ] Linux信号概述 信号的产生
  • [.NET 即时通信SignalR] 认识SignalR (一)