首页 > Python教程 > Python应用 > Python开发技巧:openpyxl读取单元格字体颜色过程解析

Python开发技巧:openpyxl读取单元格字体颜色过程解析

时间:2019-09-11    来源:黑洞

问题

我试图打印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技巧:xlwt如何设置单元格的自定义背景颜色
用Python爬取B站5000 条视频,揭秘为何千万人为它流泪!
Python教程:如何用xlrd和xlwt库读和写Excel表格?
Python安装MySQL-python:EnvironmentError的解决办法
分享:Python2和Python3有那些差异?
Python 的内置对象都藏了哪些小秘密?
实战干货!用案例让你一文搞懂python网络爬虫
Python教程:图像处理模块ndimage用法实例分析
Python教程:代理IP爬虫的使用方法
Python教程:如何使用scipy模块实现一维卷积运算示例?
Python:关于内存分配时的那些小秘密分享
python技巧:global关键字的用法详解
Python教程:深入了解python在HDA中的应用
python技巧:SSLerror的requests证书问题解决方法
PyCharm教程:搭建Spark开发环境的几个步骤
Python教程:面向对象之Web静态服务器
Python教程:如何为终端提供持久性历史记录
Python技巧分享:自动登录淘宝并保存登录信息的方法
Python数据分析:利用Flask动态展示 Pyecharts 图表数据方法
python3教程:如何搭建微型的web服务器?
如何解决Python字符串和正则表达式中的反斜杠('\')问题?
Python开发技巧:编写一个简单登录功能过程解析

精彩推荐

热门教程