使用 OpenPyxl 2.02 的单元格颜色

Posted

技术标签:

【中文标题】使用 OpenPyxl 2.02 的单元格颜色【英文标题】:Cell Colors Using OpenPyxl 2.02 【发布时间】:2014-07-11 22:41:10 【问题描述】:

我刚刚从 openpyxl 1.6.2 升级到 2.02,并且对设置单元格颜色有疑问。

Styles 函数应该处理所有必要的格式,包括使用 Fill 函数设置单元格颜色。后一个函数将 fill_type 作为其参数之一。您如何将其设置为实心填充?在以前的版本中,这是通过以下方式完成的:

mycell.style.fill.fill_type = Fill.FILL_SOLID

documentation 看起来正在进行中,似乎表明设置 fill_type = Fill.FILL_SOLID 可以解决问题(向下滚动到页面底部的注释)。但是我在尝试时遇到了 AttributeError。

from openpyxl.styles import Fill, Color
from openpyxl.styles.colors import RED

redfill = Fill(fill_type=Fill.FILL_SOLID,start_color=RED)

Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    redfill = Fill(fill_type=Fill.FILL_SOLID,start_color=RED)
AttributeError: type object 'Fill' has no attribute 'FILL_SOLID'

有什么想法吗?

【问题讨论】:

【参考方案1】:

样式一旦创建就不可更改,您必须构造一个新样式并将其分配给单元格style 属性,如下所示:

mycell.style = Style(fill=PatternFill(patternType='solid', fgColor=Color('FFFF0000')))

这会将单元格变为红色。

【讨论】:

【参考方案2】:

常量现在是模块而不是类常量。

   from openpyxl.styles import fills, PatternFill
   fill = PatternFill(patternType=fills.FILL_SOLID)

虽然我认为使用patternType='solid' 更容易

【讨论】:

以上是关于使用 OpenPyxl 2.02 的单元格颜色的主要内容,如果未能解决你的问题,请参考以下文章

完全解读 OpenPyXL 设置 Excel 单元格样式

5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel

简单使用openpyxl读取合并单元格输出json

使用 openpyxl 移动到相邻单元格

如何使用`openpyxl`库在Excel中的合并单元格中写入?

使用 Python 2.7 和 openpyxl 删除 Excel 中的单元格