使用OpenPyxl 2.02的单元格颜色

时间:2014-05-22 18:26:32

标签: colors styles cell openpyxl

我刚刚从openpyxl 1.6.2升级到2.02,并且有关于设置单元格颜色的问题。

样式功能应处理所有必要的格式,包括使用填充功能设置单元格颜色。后一个函数将 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'

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

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

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

这会使细胞变红。

答案 1 :(得分:6)

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

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

虽然我认为使用patternType='solid'

更容易