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

easyExcel 注解开发 快速以及简单上手 以及包含工具类

easyExcel 简单快速使用

1. mevan 这里版本我这里选的是 poi 4.1.2和 ali的easyexcel 的 3.3.1。 因为阿里easy是根据poi的依赖开发的有关系,两者需要对应要不然就会有很多bug和错误在运行时发生。需要版本对应,然而就是easy的代码也会有bug这个版本是比较稳定的。
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>
<!-- 阿里easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.1</version></dependency>
2.数据模型类 里面用到的easy的注解,这些注解我都写了注释。这些注解也可以用在属性上,用到属性上会覆盖类的效果,也就是属性的优先级高。
package com.byquick.imspp.entity.vo.easyExcelVo;import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.*;
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
//内容行高20
@ContentRowHeight(20)
//标头行高25
@HeadRowHeight(25)
//列宽25
@ColumnWidth(25)
//内容样式 horizontalAlignment 水平对齐 = HorizontalAlignmentEnum.CENTER 居中
//verticalAlignment 垂直对齐 = VerticalAlignmentEnum.CENTER 居中
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER,verticalAlignment = VerticalAlignmentEnum.CENTER)
//头部样式 fillForegroundColor 前景色 为 42 ,fillPatternType 填充样式
@HeadStyle(fillForegroundColor = 42,fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND)
public class PersonEasyExcelModel {//该注解为列表 value 为标头 默认从0开始为第一列@ExcelProperty(value = "序号", index = 0)private Integer sn;@ExcelProperty(value = "姓名", index = 1)private String name;@ExcelProperty(value = "性别", index = 2)private String sex;@ExcelProperty(value = "手机号码",index = 3)private String phoneNumber;@ExcelProperty(value = "邮箱",index = 4)private String emial;
}

这里在网上上找到了一张别人的测试图片为前景色的各个颜色的值

3.工具类 该工具类为三个封装好了N个方法,常用的解析读取excel和生成excel 在这里演示一下如何使用

4.工具类示例代码以及工具类地址
  • 解析excel
//解析excel
public void importPerson(MultipartFile file) {//工具类DefaultExcelListener 实现了监听DefaultExcelListener excelModelExcelListener = new DefaultExcelListener<PersonEasyExcelModel>();//工具类EasyExcelUtil 异步读取模型EasyExcelUtil.asyncReadModel(file.getInputStream(), excelModelExcelListener, PersonEasyExcelModel.class, 0, 2);//获取到的数据List<PersonEasyExcelModel> rows = excelModelExcelListener.getRows();rows.forEach(System.out::println);
}
  • 创建excel并返回客户端
public void exportPerson(MultipartFile file) {
List<PersonEasyExcelModel> personEasyExcelModels = new ArrayList<>();PersonEasyExcelModel personEasyModel new PersonEasyExcelModel();personEasyModel.setSn(1);personEasyModel.setName("张三");personEasyModel.setSex("男");personEasyModel.setPhoneNumber("1008611");personEasyModel.setEmail("1234567@outlook.com");personEasyExcelModels.add(personEasyModel);//人员导出 为excel的名称,PersonEasyExcelModel 为模版模型根据里面的注解创建excel,PersonEasyExcelModels为数据集,sheet 为 工作表的名称,创建excel并返回客户端
EasyExcelUtil.writeWithSheetsWeb(response, "人员导出").writeModel(PersonEasyExcelModel.class, personEasyExcelModels, "sheet").finish();
}

最后工具类地址:工具

5.导出样式

在这里插入图片描述

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

相关文章:

  • VS2010配置opencv2.4.10
  • Android:控制按键灯亮灭【button-backlight】
  • 1、nmap常用命令
  • Redis缓存设计典型问题
  • 【python】python基础速通系列2-python程序中的积木块
  • 本地开启https,配置nodeJs服务
  • 项目中的svg图标的封装与使用
  • 文件服务器迁移
  • 虹科Pico汽车示波器 | 汽车免拆检修 | 2011款瑞麒M1车发动机起动困难、加速无力
  • 深度学习之图像分类(十五)DINAT: Dilated Neighborhood Attention Transformer详解(一)
  • 和数集团出席中科院上海高研院​第三十三期“高研交叉论坛”信息能源融合专场
  • GitHub----使用记录
  • 大数据平台/大数据技术与原理-实验报告--实战HDFS
  • C#中的事件(委托的发布和订阅、事件的发布和订阅、EventHandler类、Windows事件)
  • 世微 舞台灯深度调光 大功率 dc-dc降压恒流驱动IC APS54083
  • 【nlp】3.3 Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层)
  • vue3中shallowReactive与shallowRef
  • 蓝桥杯-动态规划-子数组问题
  • CDA一级备考思维导图
  • 【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
  • Unity中Shader的BRDF解析(一)
  • 《软件工程原理与实践》复习总结与习题——软件工程概述
  • acwing算法基础之动态规划--线性DP和区间DP
  • 力扣 622.设计循环队列
  • 初识Linux(2).妈妈再也不用担心我Linux找不到门了。
  • 房屋租赁出售经纪人入驻小程序平台
  • 【计算方法与科学建模】矩阵特征值与特征向量的计算(五):乘幂法的加速(带有原点移位的乘幂法)
  • 2023年【起重机械指挥】考试题库及起重机械指挥考试资料
  • GoLang语言范围(Range)
  • 汽车电子 -- 车载ADAS之FCW(前方碰撞预警)