我刚刚从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'
有什么想法吗?
答案 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'