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

news2024/12/22 23:52:44

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.coloradmin.cn/o/1259194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【06】ES6:数组的扩展

一、扩展运算符 扩展运算符&#xff08;spread&#xff09;是三个点&#xff08;…&#xff09;。它是 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列。 1、基本语法 [...array] // array表示要转换的数组console.log(...[1, 2, 3]) // 1 2 3 console.l…

1233:单词倒置(C语言)

题目描述 最近birdfly收到了女友的几份信件&#xff0c;为了只要他俩知道信件的秘密&#xff0c;女友把信件里的每个单词都倒置了。这样只有birdfly将它们倒置过来才能明白女友的心思了。为此birdfly还特意请你编写程序帮他解决一下这个问题。 简单起见假定每封信只包含英文单词…

PC行内编辑

点击编辑&#xff0c;行内编辑输入框出现&#xff0c;给列表的每条数据定义编辑标记&#xff0c;最后一定记得 v-model双向绑定&#xff0c;使数据回显。 步骤&#xff1a; 1、给行数据定义编辑标记 2、点击行编辑标记&#xff08;isedit&#xff09; 3、插槽根据标记渲染表单 …

【ZYNQ】SD 卡读写及文件扫描实验

SD 卡控制器&#xff08;SD/SDIO Controller&#xff09; ZYNQ 中的 SD 卡控制器符合 SD2.0 协议规范&#xff0c;接口兼容 eMMC、MMC3.31、SDIO2.0、SD2.0、SPI&#xff0c;支持 SDHC、SDHS 器件。SD 卡控制器支持 SDMA&#xff08;单操作 DMA&#xff09;、ADMA1&#xff08…

【腾讯云云上实验室】用向量数据库——实现高效文本检索功能

文章目录 前言Tencent Cloud VectorDB 简介Tencent Cloud VectorDB 使用实战申请腾讯云向量数据库腾讯云向量数据库使用步骤腾讯云向量数据库实现文本检索 结论和建议 前言 想必各位开发者一定使用过关系型数据库MySQL去存储我们的项目的数据&#xff0c;也有部分人使用过非关…

vue3安装eslint和prettier,最简单的步骤

第1步&#xff1a; 安装eslint yarn add eslint -D 第2步&#xff1a; 在根文件夹中&#xff0c;创建.eslintrc.js文件 第3步&#xff1a; 在package.json文件中新增命令 "lint": "eslint --fix --ext .ts,.tsx,.vue src --quiet","prettier"…

编程学习及常见的技术难题

文章目录 编程学习及常见的技术难题引言如何学习编程学习参考开发工具推荐编程中常见的技术难题 编程学习及常见的技术难题 引言 学习编程是一件有趣也有挑战的事情&#xff0c;它可以让你创造出各种有用的软件&#xff0c;解决各种复杂的问题&#xff0c;甚至改变世界。 编程中…

数据结构与算法编程题30

层次遍历二叉树(队列&#xff1a;先进先出) #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1 #define Maxsize 100 #define STR_SIZE 1024typedef struct BiTNode {ElemType data;BiTNode…

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现)FPGA部分

一、 实验目的 1、掌握基于 Verilog 语言的 diamond 工具设计全流程。 2、熟悉、应用 Verilog HDL 描述数字电路。 3、掌握 Verilog HDL 的组合和时序逻辑电路的设计方法。 4、掌握“小脚丫”开发板的使用方法。 二、 实验原理 与门逻辑表达式:Y=AB 原理仿真图: 2 输入…

Flask SocketIO 实现动态绘图

Flask-SocketIO 是基于 Flask 的一个扩展&#xff0c;用于简化在 Flask 应用中集成 WebSocket 功能。WebSocket 是一种在客户端和服务器之间实现实时双向通信的协议&#xff0c;常用于实现实时性要求较高的应用&#xff0c;如聊天应用、实时通知等&#xff0c;使得开发者可以更…

FreeRTOS源码阅读笔记6--event_groups.c

通常用的事件标志组是一个32位的变量uxEventBits&#xff0c;可设置的位有24位&#xff0c;一共就是24 种事件。 事件组的结构体类型&#xff1a; 6.1创建事件组xEventGroupCreate() 6.1.1函数原型 返回值&#xff1a;事件组句柄&#xff0c;指向事件组。 6.1.2函数框架 ①…

【牛客网】SQL必知必会题解

SQL 必知必会题解 地址&#xff1a;牛客网在线编程_SQL篇_SQL必知必会 (nowcoder.com) 检索数据 从 Customers 表中检索所有的 ID 现有表 Customers 如下&#xff1a; cust_idABC 【问题】编写 SQL 语句&#xff0c;从 Customers 表中检索所有的 cust_id 答案&#xff1a;…

HUAWEI WATCH 4系列腕上星球,智慧生活触手可得

腕上星球&#xff0c;智慧生活触手可得。HUAWEI WATCH 4系列星球表盘引领风潮&#xff0c;万能卡片轻松便捷开启应用&#xff0c;腕上微信聊天抬腕即回&#xff0c;更有超级快充助力畅玩。全能型智能手表&#xff0c;生活更出彩&#xff01;

JAVA将PDF转图片

前言 当今时代&#xff0c;PDF 文件已经成为了常用的文档格式。然而&#xff0c;在某些情况下&#xff0c;我们可能需要将 PDF 文件转换为图片格式&#xff0c;以便更方便地分享和使用。这时&#xff0c;我们可以使用 Java 编程语言来实现这个功能。Java 提供了许多库和工具&a…

MacOS 14 系统 XCode15、 Flutter 开发 IOS

Flutter 系列文章目录 MacOS14 Sonoma 安装 Flutter 开发环境 MacOS 系统 Flutter开发Android 环境配置MacOS 系统 Flutter开发IOS 环境配置​​​​​​​ 前言 前面我们已经在MacOS14 M3芯片上安装好 Flutter环境&#xff0c;包括开发工具 VsCode 、Android Stuiod,那么fl…

用函数初始化数组

将数组全部初始化为相同值 对于一般情况 一般是用函数&#xff0c;传什么数就初始化为什么数 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void init(int arr[], int len, int num) {int i;for (i 0; i < len; i){arr[i] num;} } int main() {int arr[…

数据库第十第十一章 恢复和并发简答题

数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 1.什么是数据库中的事务&#xff1f;它有哪些特性&#xff1f;这些特性的含义是什么…

微服务--01--简介、服务拆分原则

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 微服务微服务架构&#xff0c;是服务化思想指导下的一套最佳实践架构方案。服务化&#xff0c;就是把单体架构中的功能模块拆分为多个独立项目。 单体架构微服务架构…

vscode Markdown 预览样式美化多方案推荐

优雅的使用 vscode写 Markdown&#xff0c;预览样式美化 1 介绍 我已经习惯使用 vscode 写 markdown。不是很喜欢他的 markdown 样式&#xff0c;尤其是代码块高亮的样式。当然用 vscode 大家基本上都会选择安装一个Markdown-preview-enhanced的插件&#xff0c;这个插件的确…

数字IC芯片验证流程及验证工具推荐?收藏专用

验证其实是一个“证伪”的过程&#xff0c;从流程到工具&#xff0c;验证工程师的终极目的都只有一个&#xff1a; 发现所有BUG&#xff0c;或者证明没有BUG&#xff0c;以保证芯片功能性能的正确性和可靠性。 验证环节对于一颗芯片的重要性也是不言而喻的&#xff1a; 从项…