Openpyxl给同个单元格的不同文字“上色”

news2024/9/23 8:26:01

文章目录

  • 0.背景
  • 1. 原文代码
  • 2. 我的代码
  • 3. 总结

0.背景

openpyxl一直在用,今天看到一直关注的公众号又发出了奇技淫巧(想要看原文或者要关注原作者的可以点击这里),就直接收录到主页好了。免得以后找不到了。

1. 原文代码

原来的代码是这样的。我按照自己的测试文件做了以下修改,代码可以看第二节

import re
from  openpyxl import load_workbook
from openpyxl.cell.text import InlineFont
from openpyxl.cell.rich_text import TextBlock, CellRichText

wb = load_workbook("test.xlsx")
ws = wb.active

content = ws["A1"].value
result = re.split(r'(【)(.*?)(】)', content)

red = InlineFont(color='FF0000')
rich_string1 = CellRichText([TextBlock(red, i) if i in re.findall(r"【(.*?)】",content) else i for i in result])

ws['A1'] = rich_string1
wb.save("test2.xlsx")

2. 我的代码

import re
from  openpyxl import load_workbook
from openpyxl.cell.text import InlineFont
from openpyxl.cell.rich_text import TextBlock, CellRichText

wb = load_workbook("test.xlsx")
ws = wb.active

content = ws["A1"].value
result = re.split(r'\+', content)

red = InlineFont(color='FF0000')
rich_string1 = CellRichText([TextBlock(red, i) if i in re.findall(r"强度",content) else i for i in result])

ws['A1'] = rich_string1
wb.save("test2.xlsx")

运行前是这样子的:
在这里插入图片描述

运行后是这样子的:
在这里插入图片描述

3. 总结

将部分文字上色的代码本身不难,关键是要能够找到需要改变颜色的字符,这个过程往往比较麻烦。

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

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

相关文章

全网最详细,Fiddler抓包实战 - 手机APP端https请求(超详细)

前言 Fiddler抓取App端请求 准备工作: 将手机和电脑连接到同一路由器(保证两者能够ping通); 如果使用的模拟器则不需要上面的步骤,因为模拟器是共享PC端的网络,两者网络默认就是连通的状态; 查…

【聘】夏日炎炎,高薪IT好岗位给你降温!

微思就业推荐 厦门海翼集团财务有限公司 职位:数字化管理部运维管理岗 6000-12000元/月*18薪 职位描述 负责公司日常办公IT设备、网络及机房服务器、业务系统的管理。 1、负责公司机房、服务器、网络设备规划、建设、管理、巡检;负责建立包括但不…

【Servlet综合项目练习】实现一个简单的博客系统~

目录 🌟一、数据库设计部分 1、建表分析:系统中一共要实现几张表? 2、开始建表 🌟二、大概框架与实现功能 🌟 三、代码实现部分 🌈前言1:工具类的实现(utils包下)…

2023年开放式蓝牙耳机选购指南!南卡/韶音/Cleer/索尼/飞利浦等开放式耳机怎么选!最热的开放式蓝牙耳机大盘点!

前言 大家好,作为专注耳机研究多年的发烧级爱好者,毫不夸张的说我为耳机花的钱比买衣服还多,很多人都在问我开放式耳机到底有没有必要买?答案毫无疑问是有必要!开放式耳机佩戴舒适又安全的特质让它在耳机届风靡&#…

动态SLAM论文(7) — DOT: Dynamic Object Tracking for Visual SLAM

目录 1 Introduction 2 Related work 3 DOT A 系统概述 B. 实例分割 C. 相机和物体跟踪 D. 跟踪质量、异常值和遮挡 E. 目标是否在运动? F. 掩码传播 4 Experimental results 5 Conclusions 摘要 - 本文我们介绍了DOT(Dynamic Object Trackin…

计算机网络实验报告——Wireshark 抓包分析

1. Wireshark软件下载 这里放一个蓝奏云下载链接: https://wwix.lanzoue.com/iEklv11klvje 密码:4g0n 2. Wireshark软件抓包使用 将该软件安装之后,双击打开,首先选择你的过滤器方式,我这里电脑连的是WiFi,就选择了这…

分布式搜索--elasticsearch

一、初识 elasticsearch 1. 了解 ES ① elasticsearch 是一款非常强大的开源 搜索引擎,可以帮助我们从海量数据中 快速找到需要的内容 ② elasticsearch 结合 kibana、Logstash、 Beats,也就是 elastic stack (ELK),被 广泛应用在日志数据分…

【CANoe示例分析】PythonCAPL_Call_Demo

该工程由Vector官方提供,目的是演示Python如何调用CAPL文件里的自定义函数。里面除了CANoe工程文件外,还有python文件和CAPL: 提供了两种CANoe版本的工程文件,选择其中一种打开即可。 首先我们要确定CAPL文件AnalyseFunctions.can在CANoe工程内的什么地方?首先想到的是Si…

Apache Doris 在金融壹账通指标中台的应用实践

本文导读: 金融壹账通作为中国平安集团的联营公司,依托平安集团 30 多年金融行业的丰富经验及自主科研能力,向客户提供“横向一体化、纵向全覆盖”的整合产品,以“技术业务”为独特竞争力,帮助客户提升效率、提升服务…

vuex中的四个map方法的使用

vuex中的四个map方法的使用 vuex里面有四个map方法,他们分别可以针对不同的元素进行不同的代码生成 这四个map方法都是异曲同工,明白了一个基本上都明白了 1 编写案例 现在想要展示一段文本,其中里面两个参数要存在store的state里面&…

怎样优雅地增删查改(二):扩展身份管理模块

文章目录 用户关系管理扩展组织管理功能创建可查询仓储 实现控制器测试接口 身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。 身份管理模块的领域层依赖Volo.Abp.Identity.Domain Abp为我们实现了一套身份管理模…

CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍

1.官网下载 官网下载地址:官网下载链接 点击进入下载页面,随便选择一个下载即可(不推荐,推荐阿里云下载,见下文) 阿里云下载站点(速度非常快推荐) 阿里云下载链接: http…

免费下载!10个3D素材网站推荐

在设计工作中,3D素材可以帮助设计师创建高质量的UI设计,提高设计效率和准确性。本文将为您推荐10个好用的3D素材网站,助力设计师实现高效创作。 1.即时设计资源广场 即时设计资源广场是一个致力于为设计师提供丰富多样的设计资产和灵感的社…

chatgpt 与传统3D建模对比分析

推荐:将NSDT场景编辑器加入你的3D工具链 随着人工智能技术的发展,越来越多的领域正逐渐被AI模型所取代。ChatGPT作为一种自然语言处理技术,越来越为人们所熟悉。最近,一些3D建模领域的专家想知道ChatGPT是否可以取代传统的手动3D建…

ClickHouse主键索引最佳实践

在本文中,我们将深入研究ClickHouse索引。我们将对此进行详细说明和讨论: ClickHouse的索引与传统的关系数据库有何不同ClickHouse是怎样构建和使用主键稀疏索引的ClickHouse索引的最佳实践 您可以选择在自己的机器上执行本文给出的所有Clickhouse SQL…

C++之Clang属性大全(一百五十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

NC65自由报表参数设置后,报表发布成节点后,点击查询,在查询框输入条件后,参数值没有拼接到sql中的解决方法

NC65自由报表参数设置后,报表发布成节点后,点击查询,在查询框输入条件后,参数值没有拼接到sql中的解决方法 在语义分析模型中把sql语句放进去,把字段和查询查询设置好 语义模型的sql使用了parameter把参数输入 sel…

eNSP-OSPF组播拓展复杂区域连接

OSPF动态路由 文章目录 OSPF动态路由一、题目要求二、题目分析三、拓扑结构四、基础配置五、测试验证 一、题目要求 1 、 使用172.16.0.0.0/16网段进行子网划分 2 、 用OSPF协议达到全网可达 3 、 保证所有设备均具备最少的 LSDB 以及路由表 二、题目分析 1.网段划分 5个O…

将OxyPlot封装成用户控件后在WPF中的应用

1、文件架构 2、加载依赖项 Newtonsoft.Json OxyPlot.Wpf 3、NotifyBase.cs namespace Accurate.Common {public class NotifyBase : INotifyPropertyChanged{public event PropertyChangedEventHandler? PropertyChanged;public void DoNotify([CallerMemberName] string p…

【深度学习】日常笔记10

loss_fn nn.MSELoss(reductionnone)这行代码,在这个上下文中,loss_fn实际上是一个损失函数对象而不是返回的具体值。 使用nn.MSELoss(reductionnone)创建的loss_fn是一个均方误差损失函数对象,而不是计算后的结果。要计算具体的损失值&…