easypoi通过反射修改表头,poi,workbook修改表头

没废话上代码,
使用easypoi导出时一般会用到一个实体类
提供一个示例代码:
实体类:

@Data
public class TestVO {private String id;@Excel(name = "字段1")private String findId1;@Excel(name = "字段2")private String findId2;}

工具类:

/*** 反射修改easypoi表头详细信息* @param entity 实体对象* @param fieIdName 修改的实体字段名称* @param nameTitle 想要修改为xx* @throws NoSuchFieldException* @throws IllegalAccessException*/public static void upDateTitle(Class<?> entity,String fieIdName,String nameTitle) throws NoSuchFieldException, IllegalAccessException {// 获取目标实体类的目标字段Field field = entity.getDeclaredField(fieIdName);// 获取该字段的注解Excel annotation = field.getAnnotation(Excel.class);// 获取Excel注解所持有的 InvocationHandlerInvocationHandler handler = Proxy.getInvocationHandler(annotation);Field hFile = handler.getClass().getDeclaredField("memberValues");// 设值私有可访问hFile.setAccessible(true);Map<Object, Object> map = (Map<Object, Object>) hFile.get(handler);// 获取配置信息map.put("name", nameTitle);}

使用效果:

		List<TestVO > list = new ArrayList();//TODO 此处需要获取自己的数据//三个参数,导出标题名,sheetname,文件格式 HSSF:xls  XSSH:xlsxExportParams params = new ExportParams("xxxxx表", "xxxx表", ExcelType.XSSF);Class<?> entity = TestVO.class;try {ExcelUtil.upDateTitle(entity, "approveDeptName", "测试测试");} catch (NoSuchFieldException e) {log.error("错误", e);} catch (IllegalAccessException e) {log.error("错误", e);}Workbook workbook = ExcelExportUtil.exportExcel(params, entity, list);//以流的形式导出ExcelUtil.excelDerive(response, workbook, "xxxx表");

在这里插入图片描述
在这里插入图片描述

感谢以下博主:
参考
扩展:
上边的方法不知道咋处理多个sheet所以此方法应运而生:

/*** 修改表头* @param workbook excel对象* @param sheetName sheet名称* @param row 第几行* @param cell 第几列* @param newStr 新字符串*/public static void upDateTitle(Workbook workbook,String sheetName,int row,int cell,String newStr) {Sheet sheet = workbook.getSheet(sheetName);Cell cell1 = sheet.getRow(row).getCell(cell);cell1.setCellValue(newStr);}

应用:

		List<TestVO > list = new ArrayList();//TODO 此处需要获取自己的数据//三个参数,导出标题名,sheetname,文件格式 HSSF:xls  XSSH:xlsxExportParams params = new ExportParams("xxxxx表头名称", "xxxxsheet名称", ExcelType.XSSF);Class<?> entity = TestVO.class;//try {//    ExcelUtil.upDateTitle(entity, "approveDeptName", "测试测试");//} catch (NoSuchFieldException e) {//    log.error("错误", e);//} catch (IllegalAccessException e) {//    log.error("错误", e);//}Workbook workbook = ExcelExportUtil.exportExcel(params, entity, list);//序号从0开始,不是从1,从0开始,从0开始,从0开始重要的事情说三遍try {ExcelUtil.upDateTitle(workbook,"xxxxsheet名称",1,0,"测试测试");} catch (NullPointerException e) {log.error("错误", e);}//以流的形式导出ExcelUtil.excelDerive(response, workbook, "xxxx表");

欢迎各路大神留言讨论

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

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

相关文章

Windows 10中查找文件的3种方法,就差不多够你查找想要的文件了

本文介绍了在Windows 10计算机上搜索文件的两种主要方法&#xff0c;以及对第三方搜索应用程序的建议和更好地搜索文件的有用提示。 使用任务栏搜索栏进行常规搜索 永久位于屏幕底部的搜索栏是大多数人的首选搜索方法&#xff0c;使用起来毫不费力。如果你不知道在哪里可以找…

2023航天推进理论基础考试划重点(W老师)绪论固体推进剂

1、推进系统的分类&#xff1a; 按工作原理分&#xff0c; 直接反作用发动机(喷气发动机) 火箭发动机、组合发动机、冲压发动机、涡轮喷气发动机、涡轮风扇发动机 间接反作用发动机 活塞式发动机、涡轮螺旋桨发动机、涡轮轴发动机、航空电动机 2、后面不细讲的火箭发动机要…

Windows系统重启Redis服务

Windows系统 在安装Redis的目录下打开终端 执行 redis-cli.exe shutdown先停止 Redis 服务 然后 执行 redis-server.exe启动Redis服务

浅谈Dubbo核心概念及架构流程

浅谈Dubbo核心概念及架构流程 前言重要概念1、SPI2、ServiceBean3、URL4、Invoker 整体流程1、架构图2、调用链路 笔者碎碎言&#xff0c;我们学习Dubbo应该学的是什么&#xff1f; 笔者是一名业务开发&#xff0c;认为一切目的都要为我们的目标服务&#xff0c;即日常工作有帮…

医院智慧能源管理平台,为医疗机构高效控能!

随着医院的不断扩大与发展&#xff0c;能源问题日益严重。大型医院能耗计量点位繁多&#xff0c;数据采集方式落后&#xff0c;难以保证计量管理的准确性与科学性。为了对医院能耗进行精细化管理&#xff0c;实时监测用能情况&#xff0c;需要建议一个完善的监管体系。基于能源…

Java Heap Space堆内存异常处理

Heap Space问题是Java开发中常见的内存溢出问题之一&#xff0c;我们需要理解其原因和表现形式&#xff0c;然后通过优化代码、增加JVM内存和使用垃圾回收机制等方法来解决。 场景 新增数据&#xff0c;富文本插入多张图片&#xff0c;总共总共大小6.6MB&#xff0c;提交报50…

【XML】TinyXML 详解(一):介绍

【C】郭老二博文之&#xff1a;C目录 1、简介 优点&#xff1a; TinyXML 是一个简单、小型的 C XML 解析器&#xff0c;可以轻松集成到项目中。 TinyXML 解析 XML 文档&#xff0c;并根据该文档构建可读取、修改和保存的文档对象模型 (DOM) TinyXML 是在 ZLib 许可下发布的&a…

计算机毕业设计------SSM网上超市购物商城管理系统

项目介绍 本项目分为前后台&#xff0c;分为普通用户、管理员两种角色。前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 登录页面,用户查看,一级分类管理,二级分类管理,商品管理,查看订单,留言管理等功能。 用户角色包含以下功…

如何使用JuiceSSH实现手机端远程连接Linux服务器

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

Linux---命令行参数+环境变量

一、命令行参数 int main(int argc,char*argv[]) {//...return 0; } 不知道有没有人见过这样的主函数&#xff0c;它带了两个参数&#xff0c;argv接收的参数就叫做命令行参数&#xff0c;因为它的参数是从命令行来的&#xff0c;给大家演示一下&#xff0c;大家就懂了 命令行…

算法基础之数字三角形

数字三角形 核心思想&#xff1a;线性dp 集合的定义为 f[i][j] –> 到i j点的最大距离 从下往上传值 父节点f[i][j] max(f[i1][j] , f[i1][j1]) w[i][j] 初始化最后一层 f w #include <bits/stdc.h>using namespace std;const int N 510;int w[N][N],f[N][…

java“俄罗斯方块”

首先新建议一个包为Tetris &#xff08;俄罗斯方块&#xff09; 类名也叫做Tetris&#xff1b; 代码运行&#xff1a; package Tetris; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.KeyEvent; import java.aw…

腾讯云服务器免费再领一台是什么意思?

腾讯云免费再领一台轻量应用服务器是什么意思&#xff1f;是指在腾讯云买赠专区活动 https://curl.qcloud.com/oRMoSucP 就是轻量应用服务器买一年&#xff0c;购买的时候可以选择“送同配置3个月”&#xff0c;也可以选择“免费续3个月”&#xff0c;阿腾云atengyun.com活动打…

创新5.1 7.1KX声卡驱动

———————KX声卡驱动——————— &#x1f384;声卡外观 &#x1f384;声卡介绍 &#x1f388;创新5.1 7.1声卡是网络直播&#xff0c;娱乐&#xff0c;唱歌&#xff0c;交友等一种音效内置声卡 &#x1f384;型号 &#x1f388;创新5.1内置声卡sb0060 0090 sn0105…

Web 开发技术

Web 开发技术 | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Web 开放的 Web 为开发者提供了巨大的机遇&#xff0c;为了充分利用这些技术&#xff0c;你需要知道如何使用它们。在下方你可以找到相关 Web 技术的文档链接。 面向 Web 开发者的文档 Web 开…

【C# 技术】 C# 常用排序方式——常规数据排序

C# 常用排序方式——常规数据排序 前言 在最近的项目中经常会对C#中的数据进行排序&#xff0c;对于基本数据类型&#xff0c;其排序方式比较简单&#xff0c;只需要调用内置算法即可实现&#xff0c;但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦&#…

C++ Qt开发:Charts折线图绑定事件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍QCharts折线图的常用方法及灵活运用。 在上一…

华为OD机试 - 学生方阵 - 矩阵(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出 四、解题思路1、题目解析2、解体思路 五、Java算法源码再重新读一遍题目&#xff0c;看看能否优化一下~ 六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导…

浏览器加粗字体显示异常

浏览器加粗的字体模糊虚化 如果在css中设置了普通的字体样式 font-face&#xff0c;使用了 font-weight: bold 的字体会在浏览器页面中会显示模糊虚化的现象&#xff0c;而正常的字体没有这种情况&#xff0c;显示的情况根据不同的浏览器会有区别。 * 出现轻微模糊虚化效果&am…

设计模式--桥接模式

实验9&#xff1a;桥接模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解桥接模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用桥接模式解决实际问题。 [实验任务]&#xff1a;两个维度的桥接模式 用桥接模式…