Python openpyxl读取单元格字体颜色过程解析

yipeiwu_com5年前Python基础

问题

我试图打印some_cell.font.color.rgb并得到各种结果。

对于一些人,我得到了我想要的东西(比如“ FF000000”),但对于其他人,它给了我Value must be type 'basetring'。我假设后者是因为我实际上没有为这些单元格定义字体颜色。

我正在使用openpyxl 2.2.2

解决方案

我认为这是openpyxl中的一个错误,我认为你应该在这里报告。

调试以下代码(当然使用trepan3k):

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
c = ws['A4'] # cell gets created here
print(ws['A4'].font.color)

我明白了:

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')

这来自文件中类Typed()的_repr_()openpyxl/descriptors/base.py。未初始化值时会给出此消息。请注意,“indexed”和“auto”也未设置。

但是这些应该ws['a4']是在执行访问代码时设置的。

注意:消息中的细微差别:'str'而不是'basestring'可能归因于我使用Python 3或不太可能使用openpyxl 2.2.3

如果我应该在我的示例中添加其他一些额外的代码,那么至少https://openpyxl.readthedocs.org/en/latest/index.html应该表明这一点。

另请参见openpyxl单元格样式未正确报告其中一个开发人员似乎在这么多单词中说同样的事情。

编辑:

其他一些事情可能值得关注。首先,您可以设置一个值然后读取它,例如您可以这样做:

c.font.color.rgb = "FF000000"

其次,如果您c.font.color.rgb在布尔值中测试,它将看起来像已设置的值。那是

if c.font.color: print("yes")

将打印“是”。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 处理dataframe中的时间字段方法

在机器学习过程中,通常会通过pandas读取csv文件,保持成dadaframe格式,然而有时候需要对dataframe中的时间字段进行数据建模,比如时间格式为datetime,那么像一...

Win10下python3.5和python2.7环境变量配置教程

Win10下python3.5和python2.7环境变量配置教程

本文分别介绍了安装python2和python3的详细方法,分享给大家。 一、Windows系统 很多童鞋问之前的教程怎么没有介绍安装python3.5的,现予以补充更新一下。 (一)安...

python使用 HTMLTestRunner.py生成测试报告

python使用 HTMLTestRunner.py生成测试报告

本文介绍了python使用 HTMLTestRunner.py生成测试报告 ,分享给大家,具体如下: HTMLTestRunner.py python 2版本 下载地址:http://t...

浅析python协程相关概念

这篇文章是读者朋友的python协程的学习经验之谈,以下是全部内容: 协程的历史说来话长,要从生成器开始讲起。 如果你看过我之前的文章python奇遇记:迭代器和生成器 ,对生成器的概念...

Python实现批量读取word中表格信息的方法

本文实例讲述了Python实现批量读取word中表格信息的方法。分享给大家供大家参考。具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件...