Easyexcel(7-自定义样式)
相关文章链接
- Easyexcel(1-注解使用)
- Easyexcel(2-文件读取)
- Easyexcel(3-文件导出)
- Easyexcel(4-模板文件)
- Easyexcel(5-自定义列宽)
- Easyexcel(6-单元格合并)
- Easyexcel(7-自定义样式)
注解
@ContentStyle
用于设置内容格式注解,可作用于类和字段上
- dataFormat:日期格式
- hidden:设置单元格使用此样式隐藏
- locked:设置单元格使用此样式锁定
- quotePrefix:在单元格前面增加`符号,数字或公式将以字符串形式展示
- horizontalAlignment:设置是否水平居中
- wrapped:设置文本是否应换行。将此标志设置为true通过在多行上显示使单元格中的所有内容可见
- verticalAlignment:设置是否垂直居中
- rotation:设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°90°,07版本的Excel旋转角度区间为0°180°
- indent:设置单元格中缩进文本的空格数
- borderLeft:设置左边框的样式
- borderRight:设置右边框样式
- borderTop:设置上边框样式
- borderBottom:设置下边框样式
- leftBorderColor:设置左边框颜色
- rightBorderColor:设置右边框颜色
- topBorderColor:设置上边框颜色
- bottomBorderColor:设置下边框颜色
- fillPatternType:设置填充类型
- fillBackgroundColor:设置背景色
- fillForegroundColor:设置前景色
- shrinkToFit:设置自动单元格自动大小
@ContentFontStyle
用于设置单元格内容字体格式的注解,可作用于类和字段上
- fontName:字体名称
- fontHeightInPoints:字体高度
- italic:是否斜体
- strikeout:是否设置删除水平线
- color:字体颜色
- typeOffset:偏移量
- underline:下划线
- bold:是否加粗
- charset:编码格式
@HeadStyle
用于设置标题样式,可作用于类和字段上
- dataFormat:日期格式
- hidden:设置单元格使用此样式隐藏
- locked:设置单元格使用此样式锁定
- quotePrefix:在单元格前面增加`符号,数字或公式将以字符串形式展示
- horizontalAlignment:设置是否水平居中
- wrapped:设置文本是否应换行。将此标志设置为true通过在多行上显示使单元格中的所有内容可见
- verticalAlignment:设置是否垂直居中
- rotation:设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°90°,07版本的Excel旋转角度区间为0°180°
- indent:设置单元格中缩进文本的空格数
- borderLeft:设置左边框的样式
- borderRight:设置右边框样式
- borderTop:设置上边框样式
- borderBottom:设置下边框样式
- leftBorderColor:设置左边框颜色
- rightBorderColor:设置右边框颜色
- topBorderColor:设置上边框颜色
- bottomBorderColor:设置下边框颜色
- fillPatternType:设置填充类型
- fillBackgroundColor:设置背景色
- fillForegroundColor:设置前景色
- shrinkToFit:设置自动单元格自动大小
@HeadFontStyle
用于定制标题字体格式,可作用于类和字段上
- fontName:设置字体名称
- fontHeightInPoints:设置字体高度
- italic:设置字体是否斜体
- strikeout:是否设置删除线
- color:设置字体颜色
- typeOffset:设置偏移量
- underline:设置下划线
- charset:设置字体编码
- bold:设置字体是否加粗
类方法
AbstractCellStyleStrategy
通过继承AbstractCellStyleStrategy类,实现其setHeadCellStyle和setContentCellStyle方法可以自定义设置表头和单元格内容样式
public abstract class AbstractCellStyleStrategy implements CellWriteHandler {@Overridepublic int order() {return OrderConstant.DEFINE_STYLE;}@Overridepublic void afterCellDispose(CellWriteHandlerContext context) {if (context.getHead() == null) {return;}if (context.getHead()) {setHeadCellStyle(context);} else {setContentCellStyle(context);}}/*** 设置表头样式*/protected void setHeadCellStyle(CellWriteHandlerContext context) {setHeadCellStyle(context.getCell(), context.getHeadData(), context.getRelativeRowIndex());}/*** 设置表头样式*/protected void setHeadCellStyle(Cell cell, Head head, Integer relativeRowIndex) {throw new UnsupportedOperationException("Custom styles must override the setHeadCellStyle method.");}/*** 设置单元格内容样式*/protected void setContentCellStyle(CellWriteHandlerContext context) {setContentCellStyle(context.getCell(), context.getHeadData(), context.getRelativeRowIndex());}/*** 设置单元格内容样式*/protected void setContentCellStyle(Cell cell, Head head, Integer relativeRowIndex) {throw new UnsupportedOperationException("Custom styles must override the setContentCellStyle method.");}
}
HorizontalCellStyleStrategy
HorizontalCellStyleStrategy 是提供的一个水平样式策略,只需实现CellWriteHandlerContext类自定义样式即可,通过设置构建这个策略对象基本上可以满足一般的要求了,比如:设置表头和内容的边框、底色、对齐方式、文字字体、文字颜色、文字大小等。设置完之后,需要创建 HorizontalCellStyleStrategy 对象,然后在导出文件时注册这个策略的 handler 即可。
Getter
@Setter
@EqualsAndHashCode
public class HorizontalCellStyleStrategy extends AbstractCellStyleStrategy {private WriteCellStyle headWriteCellStyle;private List<WriteCellStyle> contentWriteCellStyleList;public HorizontalCellStyleStrategy() {}public HorizontalCellStyleStrategy(WriteCellStyle headWriteCellStyle,List<WriteCellStyle> contentWriteCellStyleList) {this.headWriteCellStyle = headWriteCellStyle;this.contentWriteCellStyleList = contentWriteCellStyleList;}public HorizontalCellStyleStrategy(WriteCellStyle headWriteCellStyle, WriteCellStyle contentWriteCellStyle) {this.headWriteCellStyle = headWriteCellStyle;if (contentWriteCellStyle != null) {this.contentWriteCellStyleList = ListUtils.newArrayList(contentWriteCellStyle);}}/*** 设置表头样式*/@Overrideprotected void setHeadCellStyle(CellWriteHandlerContext context) {if (stopProcessing(context) || headWriteCellStyle == null) {return;}WriteCellData<?> cellData = context.getFirstCellData();WriteCellStyle.merge(headWriteCellStyle, cellData.getOrCreateStyle());}/*** 设置单元格内容样式*/@Overrideprotected void setContentCellStyle(CellWriteHandlerContext context) {if (stopProcessing(context) || CollectionUtils.isEmpty(contentWriteCellStyleList)) {return;}WriteCellData<?> cellData = context.getFirstCellData();if (context.getRelativeRowIndex() == null || context.getRelativeRowIndex() <= 0) {WriteCellStyle.merge(contentWriteCellStyleList.get(0), cellData.getOrCreateStyle());} else {WriteCellStyle.merge(contentWriteCellStyleList.get(context.getRelativeRowIndex() % contentWriteCellStyleList.size()),cellData.getOrCreateStyle());}}/*** 判断单元格是否为空*/protected boolean stopProcessing(CellWriteHandlerContext context) {return context.getFirstCellData() == null;}
}
DefaultStyle
Easyexcel在导出文件内容时默认使用DefaultStyle类来设置表头和单元格样式
public class DefaultStyle extends HorizontalCellStyleStrategy {@Overridepublic int order() {return OrderConstant.DEFAULT_DEFINE_STYLE;}public DefaultStyle() {super();WriteCellStyle headWriteCellStyle = new WriteCellStyle();headWriteCellStyle.setWrapped(true);headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);headWriteCellStyle.setLocked(true);headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());headWriteCellStyle.setBorderTop(BorderStyle.THIN);headWriteCellStyle.setBorderBottom(BorderStyle.THIN);headWriteCellStyle.setBorderLeft(BorderStyle.THIN);headWriteCellStyle.setBorderRight(BorderStyle.THIN);WriteFont headWriteFont = new WriteFont();headWriteFont.setFontName("宋体");headWriteFont.setFontHeightInPoints((short)14);headWriteFont.setBold(true);headWriteCellStyle.setWriteFont(headWriteFont);setHeadWriteCellStyle(headWriteCellStyle);}
}
Easyexcel的默认风格是,对于表头会显示灰色背景,但是如果取消使用默认风格之后,表头的背景颜色就会恢复白色
Easyexcel控制是否开启默认风格的属性方法是:useDefaultStyle(false)
注意:useDefaultStyle方法一定要放在sheet方法前面,否则会失效(放在后面会因为在构造ExcelWriter类时获取不到useDefaultStyle的值,从而导致使用的是默认风格)
public void test01() {EasyExcel.write("test01.xlsx", DemoData.class)//禁用默认风格.useDefaultStyle(false).sheet("testSheet01").doWrite(demoData);
}
样式工具类
/*** EasyExcel 样式工具类*/
public class CustomExcelStyleUtil {/*** 标题样式** @return*/public static WriteCellStyle getHeadStyle() {// 头的策略WriteCellStyle headWriteCellStyle = new WriteCellStyle();// 背景颜色//headWriteCellStyle.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE1.getIndex());//headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);// 字体WriteFont headWriteFont = new WriteFont();headWriteFont.setFontName("宋体");//设置字体名字headWriteFont.setFontHeightInPoints((short) 14);//设置字体大小headWriteFont.setBold(true);//字体加粗headWriteCellStyle.setWriteFont(headWriteFont); //在样式用应用设置的字体;// 样式headWriteCellStyle.setBorderBottom(BorderStyle.THIN);//设置底边框;headWriteCellStyle.setBottomBorderColor((short) 0);//设置底边框颜色;headWriteCellStyle.setBorderLeft(BorderStyle.THIN); //设置左边框;headWriteCellStyle.setLeftBorderColor((short) 0);//设置左边框颜色;headWriteCellStyle.setBorderRight(BorderStyle.THIN);//设置右边框;headWriteCellStyle.setRightBorderColor((short) 0);//设置右边框颜色;headWriteCellStyle.setBorderTop(BorderStyle.THIN);//设置顶边框;headWriteCellStyle.setTopBorderColor((short) 0); //设置顶边框颜色;headWriteCellStyle.setWrapped(true); //设置自动换行;headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);//设置水平对齐的样式为居中对齐;headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐的样式为居中对齐;headWriteCellStyle.setShrinkToFit(true);//设置文本收缩至合适return headWriteCellStyle;}/*** 内容样式** @return*/public static WriteCellStyle getContentStyle() {// 内容的策略WriteCellStyle contentWriteCellStyle = new WriteCellStyle();// 背景颜色// 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定//contentWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());//contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);// 设置字体WriteFont contentWriteFont = new WriteFont();contentWriteFont.setFontHeightInPoints((short) 12);//设置字体大小contentWriteFont.setFontName("宋体"); //设置字体名字contentWriteCellStyle.setWriteFont(contentWriteFont);//在样式用应用设置的字体;//设置样式;contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);//设置底边框;contentWriteCellStyle.setBottomBorderColor((short) 0);//设置底边框颜色;contentWriteCellStyle.setBorderLeft(BorderStyle.THIN); //设置左边框;contentWriteCellStyle.setLeftBorderColor((short) 0);//设置左边框颜色;contentWriteCellStyle.setBorderRight(BorderStyle.THIN);//设置右边框;contentWriteCellStyle.setRightBorderColor((short) 0);//设置右边框颜色;contentWriteCellStyle.setBorderTop(BorderStyle.THIN);//设置顶边框;contentWriteCellStyle.setTopBorderColor((short) 0); ///设置顶边框颜色;contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平居中contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中contentWriteCellStyle.setWrapped(true); //设置自动换行;contentWriteCellStyle.setShrinkToFit(true);//设置文本收缩至合适return contentWriteCellStyle;}
}
@Data
public class User {@ExcelProperty(value = "用户Id")private Integer userId;@ExcelProperty(value = "姓名")private String name;@ExcelProperty(value = "手机")private String phone;@ExcelProperty(value = "邮箱")private String email;@ExcelProperty(value = "创建时间")private Date createTime;
}
@GetMapping("/download1")
public void download1(HttpServletResponse response) {try {response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xls");User user = new User();user.setUserId(123);user.setName("as");user.setPhone("15213");user.setEmail("5456");user.setCreateTime(new Date());EasyExcel.write(response.getOutputStream(), User.class).sheet("模板").registerWriteHandler(new HorizontalCellStyleStrategy(CustomExcelStyleUtil.getHeadStyle(), CustomExcelStyleUtil.getContentStyle())).doWrite(Arrays.asList(user));} catch (Exception e) {e.printStackTrace();}
}
相关文章:
Easyexcel(7-自定义样式)
相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件)Easyexcel(5-自定义列宽)Easyexcel(6-单…...
ubuntu搭建k8s环境详细教程
在Ubuntu上搭建Kubernetes(K8s)环境可以通过多种方式实现,下面是一个详细的教程,使用kubeadm工具来搭建Kubernetes集群。这个教程将涵盖从准备工作到安装和配置Kubernetes的所有步骤。 环境准备 操作系统:确保你使用的…...
spark 写入mysql 中文数据 显示?? 或者 乱码
目录 前言 Spark报错: 解决办法: 总结一下: 报错: 解决: 前言 用spark写入mysql中,查看中文数据 显示?? 或者 乱码 Spark报错: Sat Nov 23 19:15:59 CST 2024 WARN: Establishing SSL…...
Python中的简单爬虫
文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…...
网络安全原理与技术思考题/简答题
作业1(第1章、第2章、第8章) 1. 网络安全的基本属性有哪些?简单解释每个基本属性的含义。网络安全的扩展属性包括哪些? 基本属性: 1.机密性(Confidentiality): 含义:确保信息不被未授权的用户…...
技术周刊 | 前端真的凉了吗?2024 前端趋势解读
大家好,我是童欧巴。见字如面,万事胜意。 小雪已过,大家勿忘添衣御寒,欢迎来到第 135 期周刊。 大厨推荐 2024 前端趋势 The Software House 公司发布的前端状态调查报告,本版是迄今为止最全面的调查,共…...
Qt常用控件之按钮类控件
目录 QPushButton 添加图标 添加快捷键 QRadioButton 关于toggled 模拟点餐功能 QCheckBox 刚刚 QWidget 中涉及到的各种 属性/函数/使用方法,针对接下来要介绍的 Qt 的各种控件都是有效的,因为各种控件都是继承自 QWidget 的 接下来本篇博客就学…...
Wonder3D本地部署到算家云搭建详细教程
Wonder3D简介 Wonder3D仅需2至3分钟即可从单视图图像中重建出高度详细的纹理网格。Wonder3D首先通过跨域扩散模型生成一致的多视图法线图与相应的彩色图像,然后利用一种新颖的法线融合方法实现快速且高质量的重建。 本文详细介绍了在算家云搭建Wonder3D的流程以及…...
景联文科技:高质量数据采集标注服务引领AI革新
在当今这个数字化时代,数据已经成为推动社会进步和产业升级的关键资源。特别是在人工智能领域,高质量的数据是训练出高效、精准的AI模型的基础。景联文科技是一家专业的数据采集与标注公司,致力于为客户提供高质量的数据处理服务,…...
企业面试真题----阿里巴巴
1.HashMap为什么不是线程安全的? 首先hashmap就是为单线程设计的,并不适合于多线程环境,而hashmap的线程不安全原因主主要是以下两个原因: 死循环 死循环问题发生在jdk1.8之前(不包含1.8),造…...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【四】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
【C++知识总结2】C++里面的小配角cout和cin
一、引入 第一个关于输入输出的C代码 #include<iostream> // std是C标准库的命名空间名,C将标准库的定义实现都放到这个命名空间中 using namespace std; int main() {cout<<"Hello world!!!"<<endl;return 0; } 1. 使用cout标准输出…...
门控循环单元(GRU)与时间序列预测应用
一、GRU简介 门控循环单元(Gated Recurrent Unit,简称GRU)是一种简化版的LSTM(长短期记忆网络),专门用于解决长序列中的梯度消失问题。与LSTM相比,GRU具有更简单的结构和较少的参数,…...
Spring Boot 3 集成 Spring Security(2)授权
文章目录 授权配置 SecurityFilterChain基于注解的授权控制自定义权限决策 在《Spring Boot 3 集成 Spring Security(1)》中,我们简单实现了 Spring Security 的认证功能,通过实现用户身份验证来确保系统的安全性。Spring Securit…...
互联网摸鱼日报(2024-11-22)
互联网摸鱼日报(2024-11-22) 36氪新闻 学习马斯克不丢人,脸书也开始改造自己了 旅游行业趋势变了,增长还能从哪里寻找? 大厂入局后,小型小游戏团队能否继续喝一口汤? 一拥而上的“跨界咖啡”,是“走心”…...
RNN并行化——《Were RNNs All We Needed?》论文解读
InfoPaperhttps://arxiv.org/abs/2410.01201GitHubhttps://github.com/lucidrains/minGRU-pytorch个人博客地址http://myhz0606.com/article/mini_rnn 最近在看并行RNN相关的paper,发现很多都利用了Parallel Scanning算法。本文将从Parallel Scanning算法开始&…...
机器学习周志华学习笔记-第6章<支持向量机>
机器学习周志华学习笔记-第6章<支持向量机> 卷王,请看目录 6支持向量机6.1 函数间隔与几何间隔6.1.1 函数间隔6.1.2 几何间隔 6.2 最大间隔与支持向量6.3 对偶问题6.4 核函数6.5 软间隔支持向量机6.6 支持向量机6.7核方法 6支持向量机 支持向量机是一种经典…...
IP反向追踪技术,了解一下?
DOSS(拒绝服务)攻击是现在比较常见的网络攻击手段。想象一下,有某个恶意分子想要搞垮某个网站,他就会使用DOSS攻击。这种攻击常常使用的方式是IP欺骗。他会伪装成正常的IP地址,让网络服务器以为有很多平常的请求&#…...
2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)
一、串口1的实现原理 a.查看STC15F2K60S2数据手册: 串口一在590页,此款单片机有两个串口。 串口1相关寄存器: SCON:串行控制寄存器(可位寻址) SCON寄存器说明: 需要PCON寄存器的SMOD0/PCON.6为0,使SM0和SM…...
Linux 使用gdb调试core文件
core文件和gdb调试 什么是 core 文件?产生core文件的原因?core 文件的控制和生成路径gdb 调试core 文件引用和拓展 什么是 core 文件? 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产…...
Python后端flask框架接收zip压缩包方法
一、用base64编码发送,以及接收 import base64 import io import zipfile from flask import request, jsonifydef unzip_and_find_png(zip_data):# 使用 BytesIO 在内存中处理 zip 数据with zipfile.ZipFile(io.BytesIO(zip_data), r) as zip_ref:extracted_paths…...
【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析
🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 文章题目:Java技术深度剖析:从分库分表到微服务的核心问题解析 摘要: 本…...
Linux 中 find 命令使用详解
目录 一:基本语法二:搜索路径1、限制递归层级2、排除指定路径 三:匹配条件1、按照文件名搜索2、按文件类型搜索3、按文件大小搜索4、按文件权限搜索5、按文件所有者或所属组搜索6、按文件修改时间搜索 四:执行操作1、输出满足条件…...
云服务器部署WebSocket项目
WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…...
林业产品智能推荐引擎:Spring Boot篇
1 绪论 1.1 选题背景 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能&…...
【C++】LeetCode:LCR 077. 排序链表
题干 LCR 077. 排序链表 给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 解法:归并排序 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(null…...
git教程
文章目录 简介:使用教程:(1)安装git:(2)设置用户名和邮箱作为标识符:(3)建立本地仓库:本地仓库作用:(1)将文件…...
报表工具功能对比:免费易上手的山海鲸报表 vs 庞大用户群体的Tableau
在数据报表与分析领域,随着大数据技术的不断发展和企业数字化转型的深入,市面上涌现出了众多报表工具,为用户提供多元化的选择。对于企业数据分析师、IT人员及管理层来说,选择一款适合自己的报表工具至关重要。本文将从多个角度对…...
鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元
目录 前言 HarmonyOS NEXT:下一代操作系统的愿景 1、核心特性和优势 2、如何推动应用生态的发展 3、对开发者和用户的影响 华为云服务在鸿蒙原生应用开发中的作用 1、华为云ECS C系列实例 (1)全维度性能升级 (2ÿ…...
CSS之3D转换
三维坐标系 三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的。 x轴:水平向右注意:x右边是正值,左边是负值 y轴:垂直向下注意:y下面是正值,上面是负值 z轴:垂直屏幕注意:往外面是正值,往里面是负值 3D移动 translat…...
uni-app初学笔记:文件路径与作用
components:可复用的组件pages:页面(可见/不可见)static:静态资源,存放图片视频等 (相当于vue项目的 assets)mainjs:Vue初始化入口文件App.vue:应用配置,用来配置App全局样式以及监听pages.json :配置页面路…...
子组件中$emit和update更新传递变量
vue2.6之后才可以使用update更新,vue2.6以下版本使用input和v-model 需求描述:蒙层上展示弹窗,弹窗点击关闭,需要向父传递关闭的信息 方法1,简便直接传递变量visible(或者不改名isModalVisible也是可以的…...
浅谈Python库之lxml
一、基本介绍 lxml 是一个用 Python 编写的库,它提供了对 XML 和 HTML 文档的解析和操作功能。它使用 C 语言编写的 libxml2 和 libxslt 库作为后端,因此解析速度非常快,并且能够处理大型文档。lxml 支持 XPath 和 XSLT,这使得它在…...
spring boot框架漏洞复现
spring - java开源框架有五种 Spring MVC、SpringBoot、SpringFramework、SpringSecurity、SpringCloud spring boot版本 版本1: 直接就在根下 / 版本2:根下的必须目录 /actuator/ 端口:9093 spring boot搭建 1:直接下载源码打包 2:运行编译好的jar包:actuator-testb…...
IDEA插件CamelCase,快速转变命名格式
在IDEA上大小写转换的快捷键是 CtrlshitU 其它的格式转换的快捷键是 shitaltu 安装方法: file-settings-plugins-在marketplace搜索“CamelCase”-点击安装。 安装成功设置后,重新打开idea 下载完成后 点击 Apply 和OK 此刻就可以选中命名 并使用快捷…...
Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
大家好,我是锋哥。今天分享关于【Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?】面试题。希望对大家有帮助; Elasticsearch中的节…...
Spring Boot 集成 Knife4j 的 Swagger 文档
在开发微服务应用时,API 文档的生成和维护是非常重要的一环。Swagger 是一个非常流行的 API 文档工具,可以帮助我们自动生成 RESTful API 的文档,并提供了一个友好的界面供开发者测试 API。本文将介绍如何在 Spring Boot 项目中集成 Knife4j …...
C# 创建快捷方式文件和硬链接文件
C# 创建快捷方式文件和硬链接文件 引言什么是快捷方式什么是硬链接文件硬链接与快捷方式不同 实现创建快捷方式文件实现创建硬链接文件小结 引言 什么是快捷方式 平常我们最常window桌面上点击的左下角带小箭头的文件就是快捷方式了,大家都很熟悉它。快捷方式是Wi…...
Linux高阶——1123—服务器基础服务器设备服务器基础能力
目录 1、服务器基础 1、服务器基本概述 2、服务器设计之初解决的问题 网络穿透 网络数据设备间的收发 3、服务器的类型C/S、B/S 2、服务器设备 将自己的服务器软件部署上线 3、代理服务器负载均衡,以及地址绑定方式 4、服务器的基础能力 1、服务器基础 1…...
LabVIEW串口通讯速度
LabVIEW串口通讯能达到的速度 LabVIEW支持高效的串口通讯,通过优化设置,理论上可以实现每次接收一个字节时达到1ms甚至更短的周期。不过,实际性能会受到以下因素的限制: 波特率(Baud Rate):…...
Jmeter中的监听器
3)监听器 1--查看结果树 用途 调试测试计划:查看每个请求的详细信息,帮助调试和修正测试计划。分析响应数据:查看服务器返回的响应数据,验证请求是否成功。检查错误:识别和分析请求失败的原因。 配置步骤…...
缺失的第一个正数(java)
题目描述: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 […...
跨部门文件共享安全:平衡协作与风险的关键策略
在现代企业中,跨部门协作已成为推动业务发展的关键因素。然而,随着信息的自由流动和共享,文件安全风险也随之增加。如何在促进跨部门协作的同时,确保文件共享的安全性,成为了一个亟待解决的问题。 一、明确文件分类与…...
一键AI换脸软件,支持表情控制,唇形同步Facefusion-3.0.0发布!支持N卡和CPU,一键启动包
嗨,小伙伴们!还记得小编之前介绍的FaceFusion 2.6.1吗?今天给大家带来超级exciting的消息 —— FaceFusion 3.0.0闪亮登场啦! 🌟 3.0.0版本更新 🏗️ 全面重构:修复了不少小虫子,运行更稳定,再也不怕突然罢工啦! 😀 Live Portrait功能:新增…...
我要成为算法高手-递归篇
目录 题目1:汉诺塔题目2:合并两个有序链表题目3:反转链表题目4:两两交换链表中的结点题目5:Pow(x,n) 题目1:汉诺塔 面试题 08.06. 汉诺塔问题 - 力扣(LeetCode) 解题思路࿱…...
Git 提交的相对引用
Git 提交的相对引用 在 Git 中,使用 ~ 和 ^ 符号可以帮助你更灵活地引用提交历史中的特定提交。以下是这些符号的具体用法和示例: 1. ~(波浪号) ~ 符号用于指向上一个或多个父提交。它总是沿着第一个父提交的链向上追溯。 HEA…...
国内首家! 阿里云人工智能平台 PAI 通过 ITU 国际标准测评
近日,阿里云人工智能平台 PAI 顺利通过中国信通院组织的 ITU-T AICP-GA(Technical Specification for Artificial Intelligence Cloud Platform:General Architecture)国际标准和《智算工程平台能力要求》国内标准一致性测评&…...
CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标
注:本文为 “CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标” 几篇相关文章合辑。 文章中部分超链接、图片异常受引用之前的原文所限。 相机自动对焦原理 TriumphRay 于 2020-01-16 18:59:41 发布 凸透镜成像原理 这一部分大家中学应该就学过…...
小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)
指针和引用的区别?怎么实现的? 指针和引用有以下一些主要区别。 从概念上来说,指针是一个变量,它存储的是另一个变量的地址。可以通过指针来间接访问所指向的变量。例如,我们定义一个整型指针int *p;,它可以指向一个整型变量的内存地址。而引用是一个别名,它必须在定义的…...
WPF异步UI交互功能的实现方法
前面的文章我们提及过,异步UI的基础实现。基本思路主要是开启新的UI线程,并通过VisualTarget将UI线程上的Visual(即RootVisual)连接到主线程上的UI上即可渲染显示。 但是,之前的实现访问是没有交互能力的,视觉树上的UI并不能实现…...