EasyExcel 多个不同对象集合,导入同一个sheet中

news2024/11/15 15:51:12

需求:将两块数据,写入要一个excel里面。

根据项目,导入依赖版本 

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

1、创建对象,用于不同数据接收


import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@Schema(description = "")
public class ExecuteVo {

	private static final long serialVersionUID = 1L;

	@Schema(description = "")
	@ExcelProperty("")
	private String indexName;

	@Schema(description = "")
	@ExcelProperty("")
	private String name1;

	@Schema(description = "")
	@ExcelProperty("")
	private String name2;

}
import com.alibaba.excel.annotation.ExcelProperty;
import com.ewx.starinet.archsys.entity.SysBusinessTreenodes;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
@Schema(description = "")
public class YearCheckedVo {

	private static final long serialVersionUID = 1L;

	@Schema(description = "")
	@ExcelProperty("")
	private String indexName;

	@Schema(description = "")
	@ExcelProperty("")
	private String name1;

	@Schema(description = "")
	@ExcelProperty("")
	private String name2;

	@Schema(description = "")
	@ExcelProperty("")
	private String name3;

	@Schema(description = "")
	@ExcelProperty("")
	private String name4;

	@Schema(description = "")
	@ExcelProperty("")
	private String name5;
}

2、具体实现

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteTable;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

public class Tests {
    public static void main(String[] args) throws IOException {
        // 文件保存地址
        String path = ;
        File file = new File(path);
        // 不存在目录就创建目录
        if(!file.getParentFile().exists()){
            file.getParentFile().mkdirs();
        }

        File file1 = new File(path + "s.xls");
        if(!file1.exists()){
            file1.createNewFile();
        }

        List<ExecuteVo> list1 = 实体1;

        List<YearCheckedVo> list2 = 实体2;

        ExcelWriter excelWriter = null;
        try {
            excelWriter = EasyExcel.write(file1).build();
            // 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了
            WriteSheet writeSheet = EasyExcel.writerSheet().needHead(Boolean.FALSE).build();
            // 这里必须指定需要头,table 会继承sheet的配置,sheet配置了不需要,table 默认也是不需要
            WriteTable writeTable1 = EasyExcel.writerTable(0).head(DemoVo1.class).needHead(Boolean.TRUE).build();
            // 第二个对象 读取对象的excel实体类中的标题
            WriteTable writeTable2 = EasyExcel.writerTable(1).head(DemoVo2.class).needHead(Boolean.TRUE).build();
            // 第一次写入会创建头
            excelWriter.write(list1, writeSheet, writeTable1);
            // 第二次写如也会创建头,然后在第一次的后面写入数据
            excelWriter.write(list2, writeSheet, writeTable2);

        }finally {
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }
    }
}

需要注意的是这里

excelWriter.finish();

结束的时候文件里面才会出现内容

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

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

相关文章

旷视 ShuffleNetV2

目录 前言 一、ShuffleNetV2带来的创新点四条轻量化网络设计原则 1.1 准则一&#xff1a;相同的输入输出通道数能够减少内存访问成本(MAC) 1.2 准则二: 过多的分组卷积会增加 MAC 1.3 准则三: 网络的碎片化程度会减少并行化程度&#xff08;碎片化操作对并行加速不友好&am…

用计算器学习float、输入输出函数的格式化

上一篇介绍了C语言的一部分基础知识&#xff0c;今天我们来继续深入一点讲。 引入浮点数——float 做一个加减法计算器显然不能满足其他计算需求&#xff0c;比如我们生活中的东西并不总是用整数来衡量。我们有五毛钱&#xff0c;有半杯水&#xff0c;有随时都在变的速度&…

大模型面试百问百答

大家好&#xff0c;这里是 大模型八哥。今天分享大模型面试相关知识点&#xff0c;持续更新。 1. RAG技术体系的总体思路 数据预处理->分块&#xff08;这一步骤很关键&#xff0c;有时候也决定了模型的效果&#xff09;->文本向量化->query向量化->向量检索->重…

钰泰-ETA6964A 锂电池充电器IC

描述. ETA6964A 是一款高度集成的 3A 开关模式电池充电管理和系统电源路径管理器件&#xff0c;适用于单节锂离子和锂聚合物电池。它具有快速充电功能&#xff0c;支持高输入电压&#xff0c;适用于各种智能手机、平板电脑和便携式设备。其低阻抗电源路径优化了开关模式的运行…

第六次人口普查,人口前100姓氏

第六次人口普查中&#xff0c;人口前100的姓氏具体排名和分布情况如下&#xff1a; 人口前10的姓氏 李&#xff1a;约占全国汉族人口的7.94%&#xff0c;是人口最多的姓氏。 王&#xff1a;约占汉族人口的7.41%&#xff0c;仅次于李姓。 张&#xff1a;约占全国汉族人口总数的7…

视频汇聚/视频存储/安防视频监控EasyCVR平台RTMP推流显示离线是什么原因?

视频汇聚/视频存储/安防视频监控EasyCVR视频汇聚平台兼容性强、支持灵活拓展&#xff0c;平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 EasyCVR安防监控视频综合管理平台采用先进的网络传输技术&#xff0…

Goland的使用

一、安装Goland 一、Goland简介 Goland是由JetBrains公司旨在为go开发者提供的一个符合人体工程学的新的商业IDE。这个IDE整合了IntelliJ平台的有关go语言的编码辅助功能和工具集成特点 二、下载相应的安装包 1、官网下载地址 GoLand by JetBrains: More than just a Go IDE 三…

网络编程,端口号,网络字节序,udp

前面一篇我们讲了网络的基础&#xff0c;网络协议栈是什么样的&#xff0c;数据如何流动传输的&#xff1b;接下来这篇&#xff0c;我们将进行实践操作&#xff0c;真正的让数据跨网络进行传输&#xff1b; 1.网络编程储备知识 1.1 初步认识网络编程 首先我们需要知道我们的…

Facebook对现代社交互动的影响

自2004年成立以来&#xff0c;Facebook已经成为全球最大的社交媒体平台之一&#xff0c;改变了人们的交流方式和社交互动模式。作为一个数字平台&#xff0c;Facebook不仅为用户提供了分享生活点滴的空间&#xff0c;也深刻影响了现代社交互动的各个方面。本文将探讨Facebook如…

Ollama在Windows安装,使用,简单调用API

一、安装ollama 1、安装 在Windows本地安装ollama&#xff0c;官方网页&#xff1a;https://ollama.com/download/windows 下载完安装包&#xff0c;安装就好&#xff0c;默认应该是C盘。应该是没办法改&#xff0c;如果有小伙伴能改&#xff0c;也请告知一下。 2、验证安装…

华为OD机试 - 数据单元的变量替换 - 分治、递归(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

基于yolov8+deepsort+gradio实现目标追踪演示

【效果展示】 【测试环境】 ultralytics8.2.95 gradio4.26.0 torch1.9.0cu111 理论上支持最新ultralytics版本 【实现部分代码】 with gr.Blocks() as demo:with gr.Tab("追踪"):# 使用Markdown显示文本信息&#xff0c;介绍界面的功能gr.Markdown(""…

linux固定串口别名

最近项目功能要求&#xff0c;需要将插入设备的串口设备占用的端口号固定住&#xff0c;这里记录一下设置过程方便以后查阅。 linux固定串口别名 配置过程相关补充 配置过程 列出当前插入USB端口的设备&#xff1a; lsusb查看当前设备的端口号&#xff1a; ls dev/查看当前设…

无人机飞手培训及巡检、吊运等飞行服务一体化技术详解

在无人机行业日益兴起的背景下&#xff0c;培养专业、合格的无人机飞手成为首要任务。飞手培训基础涵盖理论学习与安全意识建立两大方面。理论学习包括无人机基础知识&#xff08;如无人机类型、结构、原理&#xff09;、航空法规&#xff08;如民用无人驾驶航空器实名制登记管…

旧衣回收小程序搭建,开发功能优势

随着人们生活水平、消费水平的提高&#xff0c;在日常生活中产生了大量的限制物品&#xff0c;为了减少浪费&#xff0c;越来越多的人开始重视环保回收。旧衣物作为一种新型的回收方式&#xff0c;也逐渐得到了大众的关注&#xff0c;旧衣物回收市场发展规模也在持续上升&#…

Certbot自动申请并续期https证书

Certbot自动申请并续期https证书 一、 安装 Certbot&#xff1a;使用命令安装 Certbot&#xff1a; dnf install certbot python3-certbot-nginx获取 SSL 证书&#xff1a;运行 Certbot 命令来获取并安装 SSL 证书。 示例命令&#xff0c;替换其中的域名和路径信息&#xff1a…

PHP API 框架:构建高效API的利器【电商API接口】

在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同应用程序和服务的关键。PHP&#xff0c;作为一种流行的服务器端脚本语言&#xff0c;提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性&#xff0c;以及…

java并发编程笔记 之 线程和进程

文章目录 前言线程线程优先级和时间片创建多线程及运行线程的状态 进程查看进程的命令进程的通信方式 线程和进程的区别从关系上疑问集锦 前言 并发 1、并发是指在同一时间段内&#xff0c;计算机系统能够处理多个任务的能力。 2、在并发编程中&#xff0c;我们可以理解为多个…

chapter17-多线程基础——(自定义泛型)——day20

580-程序进程线程 581-并发并行 并发和并行也可以同时进行 582-继承Thread创建线程 583-多线程机制 主线程和子线程交替执行 单核&#xff1a;两个线程并发 多核&#xff1a;两个线程并行 主线程结束&#xff0c;不是说进程就结束&#xff0c;进程要等所有线程结束 584-为什…

模型Alignment之RLHF与DPO

1. RLHF (Reinforcement Learning from Human Feedback) RLHF 是一种通过人类反馈来强化学习的训练方法&#xff0c;它能够让语言模型更好地理解和执行人类指令。 RLHF 的三个阶段 RLHF 的训练过程一般分为三个阶段&#xff1a; 监督微调&#xff08;Supervised Fine-Tuning,…