当前位置: 首页 > news >正文

开发日记-EaxyExcel修改模板sheet名称

引入pom:

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel-core</artifactId><version>3.1.1</version><scope>compile</scope></dependency>

编写自定义拦截器:


import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;/*** 自定义模板导出sheet拦截器*/
public class CustomTemplateSheetStrategy implements SheetWriteHandler {private Integer sheetNo;private String sheetName;public CustomTemplateSheetStrategy(String sheetName) {this.sheetName = sheetName;}public CustomTemplateSheetStrategy(Integer sheetNo, String sheetName) {this.sheetNo = sheetNo;this.sheetName = sheetName;}@Overridepublic void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {}/*** 功能:动态修改模板中sheet的名称* sheet创建完成后调用* @param writeWorkbookHolder* @param writeSheetHolder*/@Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {if (sheetName == null) {return;}if (sheetNo == null) {sheetNo = 0;}writeWorkbookHolder.getCachedWorkbook().setSheetName(sheetNo, sheetName);}
}

生成excel代码:

// ...省略外层接口逻辑
try (//文件模板输入流InputStream inputStream = new ClassPathResource("//使用系统路径+文件名").getInputStream();ExcelWriter excelWriter = EasyExcelFactory.write(getOutputStream(fileName, response)).withTemplate(inputStream).registerWriteHandler(new CustomTemplateSheetStrategy(0//sheet序号,从0开始 , "// 自定义sheet名称")).autoCloseStream(Boolean.TRUE).build()) {WriteSheet sheet0 = EasyExcelFactory.writerSheet(0, "基本信息表").build();
//填充配置:forceNewRow为true列表自动换行FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();// 填充excelWriter.fill(// 数据, sheet0);
// 填充完成excelWriter.finish();} catch (IOException e) {e.printStackTrace();}
// 省略后续逻辑

 

相关文章:

开发日记-EaxyExcel修改模板sheet名称

引入pom&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel-core</artifactId><version>3.1.1</version><scope>compile</scope></dependency> 编写自定义拦截器&#xff1a; impo…...

微软AI人工智能认证有哪些?

微软提供的人工智能认证主要包括以下几个方面&#xff1a; Azure AI Fundamentals&#xff08;AI900认证&#xff09;&#xff1a;这是一个基础认证&#xff0c;旨在展示与Microsoft Azure软件和服务开发相关的基本AI概念&#xff0c;以创建AI解决方案。它面向具有技术和非技术…...

基于缓存提高Java模板文件处理性能:减少磁盘I/O的实践与探索

1、优化背景及动机 背景 线上有一个需求&#xff1a;读取模板文件&#xff0c;并根据不同的业务将数据写入模板文件&#xff0c;生成一个新的文件。模板文件本身是不会变的&#xff0c;所以每次生成文件都要去读取一遍模板文件&#xff0c;会有很多的磁盘IO操作&#xff0c;并…...

C/C++ 线程局部存储(TLS)

在C或C中&#xff0c;线程局部存储&#xff08;Thread-Local Storage&#xff0c;简称TLS&#xff09;是一种用于存储线程特有数据的方法。这意味着每个线程都可以访问它自己的变量实例&#xff0c;而不会影响到其他线程中的同名变量。这在多线程程序中非常有用&#xff0c;因为…...

碰撞检测 | 基于ROS Rviz插件的多边形碰撞检测仿真平台

目录 0 专栏介绍1 基于多边形的碰撞检测2 碰撞检测仿真平台搭建2.1 多边形实例2.2 外部服务接口2.3 Rviz插件化 3 案例演示3.1 功能介绍3.2 绘制多边形 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战…...

nginx实验

源码编译 解压 进入目录查看文件 环境监测文件 下载c语言编译工具 指定功能 成功 拷贝 关闭 删除 关闭debug 启动 nginx的平滑升级以及版本回滚 解压 备份 查看进程 回滚 nginx命令的常用参数 查看参数 检测配置文件中的语法 测试并打印 静默模式 设置全局指令&#xff08;不能…...

新技术能够区分真实照片和 AI 伪造图片,但为何平台没有使用?|TodayAI

随着生成式 AI 图像工具的快速发展&#xff0c;网络上越来越多的图像真假难辨。尽管已有技术能够区分真实照片和 AI 伪造图片&#xff0c;但大多数在线平台尚未充分利用这一技术。随着美国总统大选临近&#xff0c;网络上充斥着关于候选人唐纳德特朗普和卡玛拉哈里斯的各种照片…...

测量 Redis 服务器的固有延迟

redis-cli --intrinsic-latency redis-cli --intrinsic-latency 命令用于测量 Redis 服务器的固有延迟。 固有延迟指的是 Redis 服务器处理一个命令所需的最短时间&#xff0c;不包括网络延迟。通过这个测量&#xff0c;我们可以了解 Redis 服务器本身的性能&#xff0c;而不…...

【JVM】JVM内存模型与操作系统内存模型(一)

JVM内存模型与操作系统内存模型 Java进程在操作系统内存中的结构 JVM内存模型 可以这样理解:JVM内存模型其实就是JVM在启动的时候从操作系统内存中要了一块大内存&#xff0c;然后将这个大内存分成五个区域:方法区、堆区、虚拟机栈、本地方法栈、本地方法栈、程序计数器.其实叫…...

构建基于LLM的应用程序——为您的应用程序选择合适的LLM

。 在本章中&#xff0c;将引导您完成为应用程序选择合适LLM的过程。我们将涵盖以下几个主题&#xff1a; 市场上最具前景的LLM概览比较LLM时应使用的主要标准和工具规模与性能之间的权衡 在本章结束时&#xff0c;您应该能够清楚地理解如何为您的应用程序选择合适的LLM&…...

raksmart站群服务器多IP配置要求

RakSmart是一家提供多种服务器解决方案的服务商&#xff0c;其中包括针对站群服务的多IP服务器。这类服务器特别适合那些需要大量独立IP地址的业务&#xff0c;例如站群、多域名托管等。下面我们就来了解一下RakSmart站群服务器的多IP配置要求及相关信息。 什么是站群服务器? …...

【Web IDE】WebContainer容器在浏览器中启动运行nodejs并使用vite启动项目

参考了文章WebContainer/api 基础&#xff08;Web IDE 技术探索 一&#xff09; 在浏览器中运行vite的vue3项目 示例站点 最终效果 主要流程 加载WebContainer》加载代码压缩包>解压代码压缩包》生成文件树》挂载文件树》pnpm安装依赖》启动项目 代码 <script setup…...

Linux 多线程

目录 1 多线程的概念 1.1 再次理解进程的地址空间和页表 1.2 线程 2 线程控制 2.1 创建线程 pthread_create 2.2终止线程 2.3 线程等待 2.4 线程取消 2.5 线程分离 3 原生线程库 4 互斥 &#xff08;锁&#xff09; pthread_mutex_t pthread_mutex_init pthread_mute…...

C语言编写三子棋游戏:从概念到思路到实现

目录 一.文章概述 二.游戏规则概述 三.理解思路 1. 定义游戏数据结构 2. 游戏搭建思路及其步骤 菜单选择列表&#xff1a; 初始化棋盘&#xff1a;所有位置均为空格 创建棋盘样式 设置玩家下棋 设置电脑下棋 检查游戏状态&#xff1a; 四.代码示例 一.game.c部分 …...

React.js如何使用Bootstrap

在 React.js 项目中使用 Bootstrap 有多种方法&#xff0c;主要包括直接引入 Bootstrap CSS 文件和使用 React Bootstrap 库。下面将详细介绍这两种方法。 方法一&#xff1a;直接引入 Bootstrap CSS 文件 这是最简单的方式&#xff0c;只需在项目中引入 Bootstrap 的 CSS 文…...

深入解析:Redis与Nacos分布式锁在业务中的具体应用

时间&#xff1a;2024年08月22日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a;https://xima.tv/1_HBPYxC?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#x…...

MySQL索引的性能优化

1.数据库服务器的优化步骤 在数据库调优中&#xff0c;我们的目标就是响应时间更快&#xff0c;吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候&#xff0c;该如何思考呢&#xf…...

协方差详解及在日常生活中的应用实例——天气温度与冰淇淋销量的关系

协方差详解及在日常生活中的应用实例——天气温度与冰淇淋销量的关系 文章目录 协方差详解及在日常生活中的应用实例——天气温度与冰淇淋销量的关系引言协方差的概念与背景数学公式推导实例背景数据收集计算过程结果解释计算相关系数为什么使用协方差&#xff1f;结论商业启示…...

Spring Boot3.3.X整合Mybatis-Plus

前提说明&#xff1a; 项目的springboot版本为&#xff1a;<version>3.3.2</version> 需要整合的mybatis-plus版本&#xff1a;<version>3.5.7</version> 废话不多说&#xff0c;开始造吧 1.准备好数据库和表 2.配置全局文件application.properti…...

快速了解软件测试——测试用例的方法

测试用例的编写方法有八种&#xff0c;其中等价类、边界值、判定表、场景法、流程图重要且使用得多 ●等价类●边界值●判定表●因果图[了解]●正交法[了解]●场景法●流程图●错误推测法[了解] 1、等价类 为什么要用等价类划分法? ●从大量数据中划分范围(等价类),然后从每…...

别再只写TCP了!用Qt的QUdpSocket实现局域网聊天室(单播/广播/组播全搞定)

用QUdpSocket打造多功能局域网聊天室&#xff1a;单播/广播/组播实战指南 在Qt开发中&#xff0c;TCP协议因其可靠性被广泛使用&#xff0c;但UDP协议在实时性要求高的场景下往往更具优势。想象一下&#xff0c;当你需要快速构建一个局域网内的即时通讯工具&#xff0c;或者开发…...

Insights Imaging(IF=4.5)郑州大学第一附属医院高剑波等团队:基于CT的影像组学预测不可切除胃癌PD-1/PD-L1抑制剂联合化疗治疗反应

01文献学习今天分享的文献是由郑州大学第一附属医院高剑波教授等团队于2026年3月12日在《Insights into Imaging》&#xff08;中科院2区&#xff0c;IF4.5&#xff09;上发表的研究“CT-based radiomics for predicting the treatment response to PD-1/PD-L1 inhibitors comb…...

如何一键获取Zotero文献引用数据?终极引用统计插件完整指南

如何一键获取Zotero文献引用数据&#xff1f;终极引用统计插件完整指南 【免费下载链接】zotero-citationcounts Zotero plugin for auto-fetching citation counts from various sources 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citationcounts 如果你是一…...

为什么头部科技公司已秘密部署ChatGPT 2026预览版?揭秘其「上下文感知决策树(CADT)」如何将任务完成率提升至92.7%(实测数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT 2026预览版的演进脉络与战略定位 ChatGPT 2026预览版并非简单的能力叠加&#xff0c;而是OpenAI在可信AI、实时协同与领域自治三大范式下的系统性重构。其核心突破在于将推理过程从黑盒调用转向…...

大模型没有灵魂,但欺骗性极强——写在 AI 情感幻觉爆发的时代

大模型没有灵魂&#xff0c;但欺骗性极强 从一次「塔罗灵异事件」说起 最近 Reddit 上有个帖子刷屏了。 一位用户长期把 DeepSeek 当心理倾诉对象&#xff0c;向它输入私密日记、情绪碎片&#xff0c;偶尔用它解塔罗牌。某天&#xff0c;她问 DeepSeek「塔罗怎么看我」&…...

学习复盘:SQL 注入原理、类型、手工注入及绕过防御

一、前言今天系统继续学习了 Web 安全核心漏洞 SQL 注入&#xff0c;主要的内容就是手动注入SQL 注入是Web 渗透最基础也最重要的漏洞&#xff0c;几乎所有动态网站都曾出现过&#xff0c;是学习网安很重要的一部分二、理解SQL注入1. 简单理解 SQLSQL 是操作关系型数据库的语言…...

【OpenClaw全面解析:从零到精通】第53篇:OpenClaw多模态能力应用实战:Computer Use Agent、Peekaboo v3视觉自动化与语音交互完整指南

上一篇&#xff1a;【第52篇】OpenClaw企业级安全加固与合规实战&#xff1a;零信任架构与等保2.0/NIS2/GDPR合规完整指南 下一篇&#xff1a;【第54篇】OpenClaw v2026.6.x深度解析&#xff1a;多Agent协作框架与插件市场GUI&#xff08;明日更新&#xff0c;敬请期待&#xf…...

AI产品经理的进阶路线图

本文深入探讨了AI产品经理的核心特质&#xff0c;强调AI思维的重要性远超单纯的技术知识。文章解析了AI产品设计以极度简单为标准背后的复杂系统&#xff0c;以及AI产业链的三大结构层——基础层、技术层与应用层。此外&#xff0c;文章还详细阐述了AI产品经理的四象限分类&…...

如何在Blender中实现CAD级精确建模:CAD_Sketcher完整指南

如何在Blender中实现CAD级精确建模&#xff1a;CAD_Sketcher完整指南 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher 你是否曾经在Blender中尝试创建精确的机械零件或建筑设…...

投稿前一定要预审

作为一个拿过2项国自然青年基金、带过3届硕博生的高校青椒&#xff0c;今天给大家聊点掏心窝子的稿件打磨经验&#xff0c;都是我踩了无数坑、熬了无数夜攒出来的干货&#xff0c;不管你是要申基金、写毕业论文还是报专利&#xff0c;都能用得上。首先先给大家列3个科研人最容易…...