EasyExcel实现指定列自定义导出

news2024/12/29 0:31:27

效果展示

全部导出 

自定义导出 

 

 

代码实现 

1.引入依赖

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

2.实体类

@Data
public class User {

    @ExcelProperty(value = "姓名")
    private String name;

    @ExcelProperty(value = "性别")
    private Integer six;

    @ExcelProperty(value = "年龄")
    private Integer age;

    @ExcelProperty(value = "地址")
    private String address;

}

3.工具类

public class ExcelUtils {

    private static String fileName = "导出" + System.currentTimeMillis() + ".xlsx";

    public void write(Class head, List list) {
        EasyExcel.write(fileName, head).sheet("模板").doWrite(list);
    }

    /**
     * 动态列表导出
     */
    public void write(Class head, Set<String> columns, List list) {
        EasyExcel.write(fileName, head).includeColumnFiledNames(columns).sheet("模板").doWrite(list);
    }
}

4.测试

public class ExcelTest {

    public static void main(String[] args) {
        List<User> users = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            User user = new User();
            user.setAddress("地址" + i);
            user.setAge(i);
            user.setName("姓名" + i);
            user.setSix(1);
            users.add(user);
        }
        // 传参:指定字段
        String column = "name,age";
        if (StringUtils.isNotEmpty(column)) {
            Set<String> columns = new HashSet<>(Arrays.asList(column.split(",")));
            new ExcelHandle().write(User.class, columns, users);
        } else {
            new ExcelHandle().write(User.class, users);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697218.html

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

相关文章

vue PC端完成电子签名

最近接到一任务&#xff0c;有一个功能&#xff0c;重来没有遇到过。就是电子签名 看了原型其他基本都是对接口、写表单&#xff0c;难度不大&#xff0c;先把电子签名给攻克了起。 因为项目是vue 所有使用了 vue-esign 组件 1. 安装依赖 npm install vue-esign --save2.使用…

C++中的关联容器map下标运算符[]使用分析

最近使用到C中的map&#xff0c;发现一个问题&#xff0c;如果一个键不存在时&#xff0c;下标运算符会创建一个新的元素&#xff0c;其关键字为键。 一&#xff0c;问题重现 首先看一下问题描述&#xff1a; 本题要求读入 N 名学生的成绩&#xff0c;将获得某一给定分数的学生…

最细接口自动化测试yaml框架,超全详解,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 YAML文件介绍 YAM…

津津乐道设计模式 - 责任链模式详解(教你更优雅的处理商城下单业务)

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

Linux系统的目录结构与基本命令

目录 Linux系统使用注意 Linux严格区分大小写 Linux文件"扩展名" Linux系统中常见的后缀名称&#xff1a; Linux中所有内容以文件形式保存 Linux中存储设备都必须在挂载之后才能使用 Linux系统的目录结构 Linux分区与Windows分区 Linux系统文件架构 Linux系…

用AI帮助小学一年级记住常用字

这几天娃就要一年级毕业放假了&#xff0c;感觉时间过得太快了。再开学就要上二年级&#xff0c;可汉字表上的区区三四百字&#xff0c;咋就那么的难读&#xff1f;难记&#xff1f;喊他们来认字&#xff0c;拉都拉不过来。哎&#xff0c;愁啊&#xff0c;替他们焦虑。突发奇想…

Docker发布VUE vhr微人事前端(Nginx 403 forbidden)

本文代码来源于&#xff08;感谢作者&#xff09; GitHub - lenve/vhr: 微人事是一个前后端分离的人力资源管理系统&#xff0c;项目采用SpringBootVue开发。 发布过程参考博主 【Docker】使用docker容器发布vue项目_docker 发布vue_TOP灬小朋友的博客-CSDN博客 1.创建Do…

食品空压机数据采集远程监控系统解决方案

食品行业是一个需求量大、安全标准高、竞争激烈的行业。随着人们消费水平的提升&#xff0c;对食品的品质、口味、营养、卫生等方面有了更高的要求。食品空压机是食品生产过程中不可缺少的设备&#xff0c;它可以提供稳定的压缩空气&#xff0c;用于食品加工、包装、运输等环节…

大聪明教你学Java | 深入浅出聊 ThreadPoolExecutor

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~ 在《阿里巴巴 Java 开发手册》中有这么一个强制要求:“线程池不允许使用 Executors 去创建,而是…

6月第4周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩)发布!

飞瓜轻数发布2023年6月19日-6月25日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…

【计算机网络】数据链路层之随机接入-CSMA/CD协议

1.概念 2.信号碰撞&#xff08;冲突&#xff09; 3.解决方案 CSMA/CD 4.争用期&#xff08;端到端往返时延&#xff09; 5.最小帧长 6.最大帧长 7.指数退避算法 8.信道利用率 9.帧发送流程 10.帧接受流程 12.题目1 13.题目2 14.题目3 15 小结

linux:docker-compose下载后无法使用

参考&#xff1a; Ubuntu 安装 Docker & Docker-Compose - 知乎 解决方法: PC上下载二进制文件&#xff0c;之后filezilla上传到服务器对应目录

项目一、黑客攻击系统功能菜单->功能菜单

功能菜单 项目需求 注&#xff1a;本小节"是写功能的选项&#xff0c;在有图形化的app当中&#xff0c;肯定有选项 这章节就是讲怎么写选项的" 什么是图形化&#xff1a;把文字翻译成图像或者是图片等等。 功能选项&#xff1a; 1.网站404攻击 2.网站篡改攻击 3.网站…

Acer宏碁超轻薄笔记本非凡Swift系列SF314-57G原装出厂Win10系统工厂模式 恢复原厂OEM系统

Acer宏基超轻薄笔记本电脑&#xff0c;Acer宏碁Swift系列非凡SF314-57G原装出厂Windows10系统(工厂模式) 恢复原厂预装OEM系统 系统自带所有驱动、Office办公软件、出厂主题壁纸LOGO、 Acer Care Center、Quick Access等预装程序 所需要工具&#xff1a;32G或以上的U盘&#…

chatgpt 用来取名字

Object ,array 相对 string,int 来说是什么类型, 分别用英文名称来定义他们的类型类别

应用在数字音频工作站中的ADC芯片

数字音频工作站&#xff08;DAW&#xff09;是电子设备或应用软件用于记录&#xff0c;编辑和产生的音频文件。数字音频工作站具有多种配置&#xff0c;从便携式计算机上的单个软件程序到集成的独立单元&#xff0c;一直到由中央计算机控制的众多组件的高度复杂的配置。无论配置…

vue3-实战-15-管理后台-动态实现菜单权限和按钮权限

目录 1-菜单路由权限分析 2-菜单权限实现 2.1-路由拆分 2.2-动态计算当前用户的权限 3-按钮权限实现 1-菜单路由权限分析 目前我们系统中有&#xff1a;login(登录页面)、404(404一级路由)、任意路由、首页(/home)、数据大屏、权限管理(三个子路由)商品管理模块(四个子路由…

libevent(14)bufferevent的client端例子

前面我们写了基于bufferevent的server端&#xff0c;这里我们写1个基于bufferevent的client端。 test_libevent_client.cpp&#xff1a; #include <string.h> #include <errno.h> #include <stdio.h> #include <signal.h> #include <netinet/in.h&…

wsl下面的子系统启用systemctl

下载地址 https://github.com/gdraheim/docker-systemctl-replacement 操作 mv /usr/bin/systemctl /usr/bin/systemctl.old #对原文件进行备份sudo scp /mnt/c/Users/Administrator/Desktop/systemctl.py /usr/bin/systemctl #把项目中的systemctl.py文件拷贝到/use/bin/ 目…

vitest测试 element-plus二次封装组件时css文件报错

bug描述&#xff1a;使用 element-plus 二次封装组件&#xff0c;使用 vitest 测试时报错&#xff0c;对于 element-plus 的 css 样式识别失败。 报错内容&#xff1a; Unknown file extension “.css” for D:\demo\omniButton\node_modules.pnpm\registry.npmmirror.comeleme…