python区分不同颜色单元格,Python:openpyxl如何读取单元格字体颜色

在使用openpyxl 2.2.2版本时,尝试打印某些单元格的字体颜色,对于已定义颜色的单元格能得到RGB值,如'FF000000',但未定义颜色的单元格会报错'Value must be type 'basetring'。这可能是因为这些单元格的字体颜色未初始化。这可能是一个bug,建议在官方平台上报告。通过调试代码发现,'indexed'和'auto'属性也未设置。尽管如此,当访问ws['A4']时,这些属性应该被正确设置。此外,可以设置并读取单元格的字体颜色,且在布尔测试中,即使未设置,c.font.color也会返回真。
摘要由CSDN通过智能技术生成

I have tried to print some_cell.font.color.rgb and got various results.

For some I got what I want (like "FF000000"), but for others it gives me Value must be type 'basetring'. I assume that the latter is because I haven't actually defined the font color for these cells.

I'm using openpyxl 2.2.2

解决方案

I think this is a bug in openpyxl and I think you should report it here.

Debugging the following code (with trepan3k of course):

from openpyxl import Workbook

wb = Workbook()

ws = wb.active

c = ws['A4'] # cell gets created here

print(ws['A4'].font.color)

I get:

Color(rgb=Value must be type 'str', indexed=Value must be type 'int', auto=Value must be type 'bool', theme=1, tint=0.0, type='theme')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值