使用OpenPyxl 2.02实现单元格颜色

6
我刚刚从openpyxl 1.6.2升级到了2.02,关于设置单元格颜色有一个问题。
Styles函数应该处理所有必要的格式设置,包括使用Fill函数来设置单元格颜色。后者函数有fill_type作为其中一个参数。如何将其设置为实心填充?在早期版本中,可以使用以下内容进行设置:
mycell.style.fill.fill_type = Fill.FILL_SOLID
文档显示填充类型应该设置为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个回答

8

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

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

这将使单元格变成红色。


6

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

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

虽然我认为只需使用 patternType='solid' 更容易实现


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接