Java使用EsayExcel导出模板,涉及多个sheet

news2024/11/23 2:42:25

需求:利用excel模板导出,有两个sheet,其中一个sheet涉及固定字段导出和多数
          据(List)导出

1、模板

sheet1:

 sheet2:

 2、主要代码

public static void outputExcelForTunnelMonitor(HttpServletResponse response, EngineerTunnelMonitorExcelVo engineerTunnelMonitor){
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename=" + "问题清单" + ".xlsx");
        // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
        // 填充list 的时候还要注意 模板中{.} 多了个点 表示list

        //获取文件路径
        String url="excelMode/周边.xlsx";
        if(null!=engineerTunnelMonitor.getTestPart() && 1==engineerTunnelMonitor.getTestPart()) {
            url="excelMode/拱顶.xlsx";
        }
        ClassPathResource resource= new ClassPathResource(url);
        String templateFileName = null;
        try {
            templateFileName = resource.getFile().getPath();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        ExcelWriter excelWriter = null;
        try {
            excelWriter = EasyExcel.write(response.getOutputStream())
                    .withTemplate(templateFileName)
                    .build();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        WriteSheet writeSheet = EasyExcel.writerSheet(0,"量测记录表").build();
        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
        //sheet1数据(list)
        excelWriter.fill(engineerTunnelMonitor.getEngineerTunnelMonitorRecordList(), fillConfig, writeSheet);

        //sheet1(表头固定数据)
        Map<String, Object> map = new HashMap<>();
        map.clear();
        map.put("pointName", engineerTunnelMonitor.getPointName());
        map.put("constructionName", engineerTunnelMonitor.getConstructionName());
        map.put("wallRockLevel", engineerTunnelMonitor.getWallRockLevel());
        map.put("fractureSurfaceMileage", engineerTunnelMonitor.getFractureSurfaceMileage());
        map.put("buildTime", engineerTunnelMonitor.getBuildTime());
        map.put("constructMethod", engineerTunnelMonitor.getConstructMethod());
        map.put("observationMethod", engineerTunnelMonitor.getObservationMethod());
        map.put("testCode", engineerTunnelMonitor.getTestCode());
        excelWriter.fill(map, writeSheet);

        //sheet2固定数据
        Map<String, Object> map2 = new HashMap<>();
        EngineerTunnelMonitorAnalyseExcelVo engineerTunnelMonitorAnalyse = engineerTunnelMonitor.getEngineerTunnelMonitorAnalyse();
        map2.clear();
        map2.put("name", engineerTunnelMonitorAnalyse.getName());
        map2.put("constructionName", engineerTunnelMonitorAnalyse.getConstructionName());
        map2.put("fractureSurfaceMileage", engineerTunnelMonitorAnalyse.getFractureSurfaceMileage());
        map2.put("testPart", engineerTunnelMonitorAnalyse.getTestPart());
        map2.put("wallRockLevel", engineerTunnelMonitorAnalyse.getWallRockLevel());
        map2.put("testCode", engineerTunnelMonitorAnalyse.getTestCode());
        map2.put("firstTime", engineerTunnelMonitorAnalyse.getFirstTime());
        map2.put("lastTime", engineerTunnelMonitorAnalyse.getLastTime());
        map2.put("dataTaskTime", engineerTunnelMonitorAnalyse.getDataTaskTime());
        map2.put("regressionEquation", engineerTunnelMonitorAnalyse.getRegressionEquation());
        map2.put("coefficientAssociation", engineerTunnelMonitorAnalyse.getCoefficientAssociation());
        map2.put("displacementLevel", engineerTunnelMonitorAnalyse.getDisplacementLevel());
        map2.put("rate", engineerTunnelMonitorAnalyse.getRate());
        map2.put("conclusion", engineerTunnelMonitorAnalyse.getConclusion());
        excelWriter.fill(map2, EasyExcel.writerSheet(1,"回归分析表").build());

        excelWriter.finish();
    }

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

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

相关文章

EBU5476 Microprocessor System Design 知识点总结_8 I2C

I2C 连接多个模块的传输方案&#xff1a;I2C&#xff0c;使用两根总线。 两根总线分别是时钟总线 SCL 和数据总线 SDA。 通信过程 现在我们串一遍I2C上一个模块&#xff08;master&#xff09;要给另一个模块&#xff08;slave&#xff09;发消息的过程。 MCU 使用一定的方法…

玩转代码|Linux中Thread Local Storage(线程局部存储)

目录 pthread的内存结构 __thread pthread specific API __thread和pthread specific API对比 存储区域/寻址方式不同 性能/效率不同 能存储的数据不同 支持的数据个数不同 在C/C程序中&#xff0c;全局变量默认是所有线程共享的&#xff0c;开发者需要处理多线程竞争问…

如何在短时间内提高亚马逊关键词排名?

搜索购买可以在短时间内提高亚马逊关键词排名&#xff0c;操作方法是通过独立买家账号搜索关键词&#xff0c;找到商品&#xff0c;点击购买&#xff0c;提高关键词的相关性和保留率&#xff0c;让关键词排名自然提高&#xff0c;从而达到上首页的目的。不过要操作这一个方法还…

储能协调控制器装置|储能协调控制设备|储能系统功率控制器|源网荷储互动终端这种装置是什么?应用实施方案如何?

什么是储能协调控制器装置|储能协调控制设备|储能系统功率控制器|源网荷储互动终端及其应用实施方案 一&#xff1a;新型电力系统背景 以新能源为主体的新型电力系统是以新能源为供给主体、以确保能源电力安全为基本前提、以满足经济社会发展电力需求为首要目标&#xff0c;以…

Spring - 更简单的存取 Bean 对象(使用注解)

目录 一、类注解是什么 二、使用类注解 存取 Bean 对象 1. 准备工作 2. 所以使用五大类注解的规则&#xff1a; 三、五大类注解之间的关系 1. 首先可以查看 类注解的源码如下图&#xff1a; 2. 为什么需要五个类注解&#xff1f; 3. 为什么使用类注解的方式不能使用原类…

挖矿记录+解决方案:利用GitLab组件对服务器进行挖矿导致CPU占用200%

文章目录 什么是云服务器挖矿?事件记录事件分析产生影响解决方案后期预防什么是云服务器挖矿? 云服务器挖矿是指利用云服务器从事赚取比特币的活动。比特币是一种虚拟数字货币,挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。 用于…

青岛大学_王卓老师【数据结构与算法】Week05_06_栈的顺序表示_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

【数据结构】之红黑树

红黑树 红黑树的概念红黑树的性质红黑树的插入操作&#xff08;核心&#xff09;情况一&#xff1a;uncle存在且为红情况二&#xff1a;uncle不存在/存在且为黑&#xff08;在同一侧&#xff09;情况三&#xff1a;uncle不存在/存在且为黑&#xff08;在两侧&#xff09;总结 红…

三、学习分类 - 基于图像大小进行分类

天下一半剑仙是我友 谁家娘子不娇羞 我以醇酒洗我剑 谁人说我不风流 1 设置问题 根据图片的尺寸&#xff0c;把图片分为纵向图像和横向图像。这种把图像分成两种类别的问题&#xff0c;就是二分类问题。 纵向图片示例&#xff1a; 横向图片示例&#xff1a; 这样就有了两个…

【Go语言开发】简单了解一下搜索引擎并用go写一个demo

写在前面 这篇文章我们一起来了解一下搜索引擎的原理&#xff0c;以及用go写一个小demo来体验一下搜索引擎。 简介 搜索引擎一般简化为三个步骤 爬虫&#xff1a;爬取数据源&#xff0c;用做搜索数据支持。索引&#xff1a;根据爬虫爬取到的数据进行索引的建立。排序&#xf…

Wsl 错误 0x80004002 解决

wsl2安装教程&#xff1a;https://www.jianshu.com/p/6e7488440db2 我安装的过程中出现了如下错误&#xff1a; 解决办法&#xff1a; 已管理员身份运行Powershell运行以下命令以获取包的全名 Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*"…

(33)(33.3) 连接实例

文章目录 前言 33.3.1 嵌入在集体PPM/总信号通道中的RSSI 33.3.2 模拟电压型RSSI被输送到一个专用引脚 33.3.3 PWM类型的RSSI输送到一个专用引脚 前言 以下是典型的 RC 接收机 RSSI 连接方案示例&#xff1a; 33.3.1 嵌入在集体PPM/总信号通道中的RSSI 通常的做法是在一根…

NLog写日志到数据库

需求&#xff1a;NLog写日志到数据库 一、必须要安装&#xff1a; System.Data.SqlClient 二、 NLog配置&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <nlog xmlns"http://www.nlog-project.org/schemas/NLog.xsd" …

存css实现动态时钟背景

代码实现 <!DOCTYPE html> <html lang"en"> <head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>Title</title><meta name"referrer" content"no-referrer…

Spring的控制翻转(IOC)与依赖注入(DI)

SpringIOC 即 Inversion of Control&#xff0c;缩写为 IOC&#xff0c;就是由 Spring IoC 容器管理对象&#xff0c;而非传统实现中由程序代码直接操控. 使用IOC容器管理bean&#xff08;IOC&#xff09; 在IOC容器中将有依赖关系的bean进行关系绑定 最终达到的目的&#…

【C】回调函数和qsort详解

回调函数概念 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一 个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这是回调函数。回调函数不是由该 函数的实现方直接调用&#xff0c;…

七大排序算法——快速排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、快速排序核心思想Hoare法挖坑法前后指针法(选学) 三、性能分析四、算法优化优化基准的选取优化少量数据时的排序方案优化后的完整代码 五、七大排序算法 一、排序的概念 排序的概念 排序&#xff1a;所谓排序…

基于ChatGPT和私有知识库搭建Quivr项目

准备工作 安装docker和docker-compose申请supabase账号 拉取Quivr代码 git clone https://github.com/StanGirard/Quivr.git 复制.XXXXX_env文件 cp .backend_env.example backend/.env cp .frontend_env.example frontend/.env 更新backend/.env和frontend/.env文件 ba…

靶场的安装

sqli-lab 1.将安装包解压放到WWW目录下 2.修改 db-creds.inc文件里面的数据库的用户名密码为自己的用户名密码 路径&#xff1a;D:\phpStudy_64\phpstudy_pro\WWW\sqli-labs-master\sql-connections\db-creds.inc 3. 更改php版本位5.9版本&#xff0c;不然会报错 4.安装数…

【采用有限元法技术计算固有频率和欧拉屈曲荷载】使用有限元法的柱子的固有频率和屈曲荷载(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…