easyExcel实现动态标头(模板写入)

基于java + easyExcel实现模板填充生成动态模板并设置指定单元格为下拉框样式 easyExcel模板填充实现动态模板生成 阅读详情

语雀-地址
建议下载源码看
gitee easyExcel 源码下载更快

要的效果
在这里插入图片描述
mainHead 这个字段会变。
源码
com.alibaba.easyexcel.test.demo.fill.FillTest

 /**
     * 复杂的填充
     *
     * @since 2.1.1
     */
    @Test
    public void complexFill() {
        // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
        // {} 代表普通变量 {.} 代表是list的变量
        String templateFileName =
            TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "complex.xlsx";

        String fileName = TestFileUtil.getPath() + "complexFill" + System.currentTimeMillis() + ".xlsx";
        ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
        WriteSheet writeSheet = EasyExcel.writerSheet().build();
        // 这里注意 入参用了forceNewRow 代表在写入list的时候不管list下面有没有空行 都会创建一行,然后下面的数据往后移动。默认 是false,会直接使用下一行,如果没有则创建。
        // forceNewRow 如果设置了true,有个缺点 就是他会把所有的数据都放到内存了,所以慎用
        // 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存
        // 如果数据量大 list不是最后一行 参照下一个
        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
        excelWriter.fill(data(), fillConfig, writeSheet);
        excelWriter.fill(data(), fillConfig, writeSheet);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("date", "2019年10月9日13:28:28");
        map.put("total", 1000);
        excelWriter.fill(map, writeSheet);
        excelWriter.finish();
    }

我写的

   @GetMapping("complex")
    public void complex() throws IOException {
        List<UserExportVo> voList = userService.testMapStruct();

        long l = System.currentTimeMillis();
        String templateFileName = EasyExcelController.class.getResource("/").getPath()+"excel"+"/weekmonth.xlsx";

        String mainHead ="2019年10月9日13:28:28";
        
        String fileName =  "D:/周月导出"+System.currentTimeMillis() + ".xlsx";
        ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
        WriteSheet writeSheet = EasyExcel.writerSheet().build();
        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
        for (int i = 0; i < 100; i++) {
            excelWriter.fill(voList, fillConfig, writeSheet);      
        }
      
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("mainHead",mainHead );
        excelWriter.fill(map, writeSheet);
        excelWriter.finish();
        log.error("用时:{}", DateUtil.spendMs(l));
    }

写 1500+,大概0.6秒,还挺快的

linux 环境 遇见问题

   String templateFileName = EasyExcelController.class.getResource("/").getPath()+"excel"+"/weekmonth.xlsx";
   // liunx 或许的是这样的,是有问题的。原因应该和 jar 包有关。
message:模板路径:file:/usr/local/teacherattendance/bak/165_11595_20220224_113902/teacherattendance.jar!/BOOT-INF/classes!//excel/weekMonth.xlsx
// win 是正常的

正确的做法是:下面获取是多文件通用

  Resource resource = new ClassPathResource("excel/weekMonth.xlsx");
  InputStream is =resource.getInputStream();

或者hutool

 InputStream stream = ResourceUtil.getStream("excel/weekMonth.xlsx");
基于已有的excel模板,通过easyexcel api向模板中动态写入下拉字典数据 阅读详情

相关推荐

EasyExcel 实现动态导入导出

excel 动态导入、动态导出。

u011731053的专栏 1万+

EasyExcel动态列导出 如何写,需要将每个数据写入单独的单元格

【代码】EasyExcel动态列导出 如何写,需要将每个数据写入单独的单元格。

易的博客 635

easyexcel一个模板动态多个sheet填充

easyexcel一个目标动态多个sheet填充效果 目前easyexcel不能根据模板动态生成sheet,模板固定的几个sheet就只能填充那几个sheet,当代码里指定了不存在的sheet的话就会报空指针.。 遇到这种情况一般只能通过代码动态生成excel文件,而且样式什么的都需要通过代码来设定,这也是比较麻烦的,所以想要通过模板动态导出多个sheet,可以先利用poi克隆出多个sheet的模板写到流里然后再进行填充。 引入jar包 com.alibaba easyexcel 2.2.10 org

once10的博客 8461

Easyexcel动态表头、动态数据

Easyexcel动态表头、动态数据

sun142121的博客 686

使用easyexcel 实现动态表头导入导出

首先讲述一下需求,需求是根据系统界面导出excel表格,excel表头是动态,具体字段不确定,用户输入什么字段 就需要导出什么字段如下图所示。用户输入的字段会以json串形式保存到数据库表中 下文以json代替 String json ="{\"goal\":{\"measures\":[{\"name\":\"销售机会总数\",\"value\":0,\"seq\":0}],\"period\":\"2021\",\"goalName\":0,\"timeDimension\":...

qq_47823201的博客 2万+

easyExcel实现单sheet多子表,并结合动态表头,复杂表头

easyExcel实现单sheet多子表,并结合动态表头,复杂表头

taoyalong的博客 8810

EasyExcel 动态头导出

EasyExcel 动态头导出的简单 Demo,适用于需要动态调整表头的 Excel 导出需求

凭心而动 1万+

STM32 LwIP协议栈优化:从TCP延迟10ms降至1ms的内存配置手册

摘要: 本文针对STM32嵌入式开发中LwIP TCP通信的高延迟问题(默认配置下延迟达10~20ms),提出纯软件优化方案,通过调整内存配置与TCP参数将延迟降至1ms。核心问题包括内存池不足、pbuf分配低效及Nagle算法拖累,优化步骤包括: 内存池扩容:增大MEMP_NUM_TCP_PCB至10、PBUF_POOL_SIZE至32,避免资源竞争; pbuf静态池分配:采用2048字节大块缓冲区匹配DMA传输,减少分块与拷贝; 关闭Nagle算法:设置TCP_NODELAY=1,禁用延迟确认以加速小包

weixin_42212753的博客 1707

【EasyExcel 教程】详解写入Excel -- 写入

愿你如阳光,明媚不忧伤。

おうせき碩の博客 5992

无网环境也能玩转DBeaver?手把手教你离线安装与ClickHouse连接(附实测jar包)

本文详细介绍了在无网环境下如何离线安装DBeaver并配置ClickHouse连接的完整指南。通过准备必备工具如DBeaver安装包、ClickHouse JDBC驱动及Maven本地仓库,确保在物理隔离环境中实现数据库管理。文章包含详细的安装步骤、驱动配置和性能优化建议,帮助开发者在严格网络限制下高效工作。

weixin_42635064的博客 375

Cadence AMS数模混合仿真:从零搭建高效验证环境的实战指南

本文是Cadence AMS数模混合仿真的实战指南,详细介绍了如何从零搭建高效的芯片验证环境。内容涵盖环境准备、Testbench创建、核心Config视图与ADE设置、仿真运行调试及性能加速技巧,旨在帮助工程师解决SoC设计中数字与模拟模块的集成验证难题,确保芯片设计一次成功。

weixin_29164091的博客 320

easyExcel - 动态复杂表头的编写

之前有介绍过如何使用easyExcel,以及写了两个入门的demo,这两个demo能应付在开发中大多数的导入和导出需求,不过有时候面对一些复杂的表格,就会有点不够用,该篇讲述的是如何实现复杂表头编写在实际的开发过程中可能会遇到需要导出一些带有复杂表头的表格,比如以下案例:该表头占了两行,其中橙色部分的信息是需要动态生成的根据官方实现复杂表头的写法,自定义输出对象为。

xhmico的博客 1万+

Word公式一键转MathType保姆级教程(附omml2mml.xsl报错终极解决方案)

本文提供Word公式一键转MathType的保姆级教程,重点解决常见的omml2mml.xsl报错问题。通过详细分析报错原因、官方解决方案实操步骤及转换后格式优化技巧,帮助用户高效完成公式转换,适用于科研论文和商业文档编辑。

weixin_30082367的博客 552

EasyExcel 实现写入多个sheet数据进excel模板并下载

EasyExcel 实现写入多个sheet数据进excel模板并下载

Apollo 4355

ubuntu-25.04-desktop-amd64 工具VMware-tools 正确安装方法

摘要:Ubuntu 25.04虚拟机安装VMware Tools后无法实现主机与虚拟机间的文件复制粘贴和拖拽功能,问题可能源于工具兼容性。建议优先安装open-vm-tools套件(含open-vm-tools-desktop),而非官方VMware Tools。具体方案:通过终端执行安装命令后重启系统。该方法已实测有效解决该兼容性问题。(149字)

安徽锐锋科技-沐雨潇竹 672

【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

AUTOSAR架构下MCAL Modules软件分区问题分析

qq_36056498的博客 939

easyexcel 动态合并单元格

easyexcel 动态合并单元格 目前操作excel文档的底层都是用poi来进行的,在早期工作开发过程中,是基于poi,然后对每一个数据单元格进行操作代码编写,后面有一些比较好的开源项目,像easyexcel、easypoi、hutool等,由于身处电商之都,就选择了阿里开源的easyexcel来做二次开发,源码相对来说并没有那么枯燥,有兴趣可以细细研读一番,对抽象能力,编码规范等一些重要的编程功底都有所帮助的。 单元格的动态合并 在实际项目开发过程中,不可避免地会有生成excel文档的需求,同时也不可避

jianghuafeng0的博客 2万+

使用Python实现深度学习模型:智能光污染监测与管理

本项目将通过以下几个步骤实现智能光污染监测:收集光污染图像数据数据预处理构建深度学习模型训练模型评估模型部署模型用于实时监测通过本文介绍的步骤,我们实现了一个使用Python和深度学习技术的智能光污染监测与管理系统。该系统能够自动识别光污染源,为相关管理部门提供科学依据,以便更好地规划和管理城市照明。同时,这一方法还可以扩展到其他环境监测领域,为环境保护贡献力量。

Echo_Wish 590

EasyExcel 动态表头生成且带合并

EasyExcel尝试EasyExcel下载源码及demo打开官网参考应用中需要导出的格式我的demo尝试springboot 项目pom.xml引入依赖来个例子官网的demo先跑跑自己搞一下 EasyExcel 原来写EXCEL导出用的是POI,如果遇到复杂些的EXCEL导出,各路合并计算单元格超级累无比啊!!万一数学幼儿园毕业的,经常数错!年前给组内同学推荐了阿里的EasyExcel,在CSD...

傲视苍穹 2万+

信号处理算法:离散余弦变换(DCT)_(1).离散余弦变换(DCT)概述

离散余弦变换的数学定义如下:对于一个长度为NNN的离散信号xnx(n)xn,其DCT变换后的系数XkX(k)XkXk∑n0N−1xncos⁡πNn12kk012N−1Xkn0∑N−1​xncosNπ​n21​kk012N−1其中,kkk是频率指数,nnn是时间或空间索引。离散余弦变换(DCT)是一种强大的信号处理技术,广泛应用于图像压缩、音频处理、数据压缩等领域。

2401_87715305的博客 1554

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

EasyExcel写入excel模板

exel导入模板

weixin_42943586的博客 1543

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

EasyExcel导出excel模板的几种解决方案

​ excel下拉框包含两种情况,一种是固定内容的下拉框,一种是动态内容的下拉框,所以在设计的时候要考虑这两种情况。实现方式是通过自定义注解和自定义处理器的方式结合easyExcel进行模板下载,自定义注解应用到具体的字段中,在字段中传入相关参数,如果是固定内容的下拉框,则字段的参数直接传具体内容的数组即可,若是动态内容的下拉框则需要具体实现类以及数据类型,在实现类中通过参数来查询动态数据并以数组的方式返回。在注解解析工具类判断该字段是固定内容还是动态内容,并将内容进行解析和返回。

weixin_46048683的博客 3262

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 数据 07:Excel 模板导出(EasyExcel 填充动态数据)

本文介绍了阿里巴巴开源的EasyExcel库在Java项目中的应用,重点讲解了如何利用Excel模板实现动态数据导出。EasyExcel相比传统Apache POI具有高性能、低内存占用和易用性强的优势。文章详细说明了环境配置、模板创建方法以及数据填充技术,并提供了员工信息导出的示例模板和Java实体类定义。通过EasyExcel的模板填充功能,开发者可以轻松生成格式统一、样式专业的Excel报表,适用于财务报表、订单详情等需要固定格式的业务场景。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

EasyExcel 填充+写入

之所以要使用该拦截器,是因为填充时默认是只能取模板定义的 sheet 名称作为填充页的 sheet 名称,但业务中往往是需要动态命名 sheet 的,所以使用拦截器进行拦截处理后命名。此时读取的模板文件默认为压缩文件,是不能在后续进行填充的,所以需要在。:这里一定要传入对象,不能传入列表,否则填充的内容会变为空白。:这里必须要关闭写入器,不然写入的文件为空。

天河有尽后为涯,星海无边前作岸。 2430

easyexcel生成动态模板(模板支持下拉框),动态字段导出excel表格,常规字段导出excel表格

备注:动态字段导出主要是用了反射的原理,跟excel需要导出的字段一一映射。话不多说,直接上代码; 1.生成的动态模板如图: 如上图,如果下拉框里不是选择的值,会给用户提示,下拉框用来限制用户导入只能选择下拉框中的值 先放controller层调用 @RestController @RequestMapping("/test") @Slf4j @RequiredArgsConstructor public class TestExcelController { ...

a116385895的博客 1万+

EasyExcel - table写入复杂表头及内容

在一个工作簿中,需要填充固定字段信息,并写入多个不同的标题列的表格及内容。

qq_36782325的博客 4779
上一篇: nacos+spring cloud gateway 出现503 Service Unavailable
下一篇: jjdk11免安装版 visualvm 提示没有jdk 1.8
一个大泥球
博客等级 码龄9年 41粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值