xlwings100个例子之读取修改单元格内指定字符(11/100)

文章讲述了如何利用Python的xlwings库来识别和操作Excel单元格中红色字体的内容。通过引入comtypes库,可以获取单元格内文字的字体颜色,并进行修改,例如改变指定字符的颜色、加粗或斜体化。示例代码展示了读取和修改B2单元格颜色的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习群里有人发了一个很有意思的习题出来,目的是,取出单元格内红色的答案,用了普通的方法,不太行,但是VBA里面是可以做到的,那么号称等于99%功能的xlwings 怎么才能读取一下的红色内容呢?

以下是我的方法,过了5天,也有同学用普适的xlwings代码写出来了,如果有需要,我们下次有机会再把代码拉出来

 如题,我们该如何提取红色的字体,填写到答案这一列呢

很明显,答案为D李白  b陆游 c苏轼  A对

那么在xlwings 中我们应该怎么写?

如下:

我们要引入一个库 

'''
pip install comtypes
'''

import xlwings as xw
import comtypes.client as ct  #导入comtypes

wb = app.Workbooks.open(r'题库示例1.xlsx') # 打开文件
ws = wb.sheets['Sheet1']  # 选择工作表

# 跟我们平时取值的方法不一样,有点难受
# v = ws.Range('B2').value 这样写的话 得出<POINTER(Range) ptr=0x1977f383518 at 1970f44f9c0>
v = ws.Cells[2,2].Value[()]

# 取值后,我们len一下,得出单元格内有几个值
v_num = len(v)

# 把v_num 放进去就能打印出一个单元格内,就知道哪几个字是红色啦!(别问我为什么要+1)
for i in range(1,v_num +1 ):
    print(ws.Range('B2').Characters(i,1).Font.Color)

如此我们就可以得到B2单元格内是红色的字符

以上是读取,那么反向,我们如何去修改指定字符

# 添加颜色
ws.Range('B2').Characters(1,3).Font.Color = 255

# 加粗、斜体

ws.range('B2').Characters(1,3).Font.Bold = True  # 加粗
ws.range('B2').Characters(1,16).Font.Italic = True  # 斜体

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值