如何使用openpyxl中的预设颜色对实体进行填充图案

2024-04-18 16:53:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望避免对颜色使用十六进制代码,并利用openpyxl中的预设颜色名称来填充单元格。但是这个代码有以下错误:

from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, NamedStyle
from openpyxl.styles.colors import Color
from openpyxl.drawing.fill import ColorChoice

wb= Workbook()
ws = wb.active

sashighlight = NamedStyle(name="sashighlight")
bd = Side(style='thick', color="000000")
sashighlight.border = Border(left=bd, top=bd, right=bd, bottom=bd)
sashighlight.alignment = Alignment(horizontal='center', vertical='center')
sashighlight.fill = PatternFill(fill_type='solid', start_color=ColorChoice(prstClr='yellow'))

Traceback (most recent call last):
  File "test.py", line 13, in <module>
    sashighlight.fill = PatternFill(fill_type='solid', start_color=ColorChoice(prstClr='yellow'))
  File "/usr/lib/python2.7/site-packages/openpyxl/styles/fills.py", line 92, in __init__
    self.fgColor = fgColor
  File "/usr/lib/python2.7/site-packages/openpyxl/styles/colors.py", line 126, in __set__
    super(ColorDescriptor, self).__set__(instance, value)
  File "/usr/lib/python2.7/site-packages/openpyxl/descriptors/base.py", line 44, in __set__
    raise TypeError('expected ' + str(self.expected_type))

如何使用预设的颜色名称?你知道吗


Tags: infrompyimport颜色linefillbd
1条回答
网友
1楼 · 发布于 2024-04-18 16:53:16

你在找这样的东西吗(对我来说很有用):

sashighlight.fill = PatternFill(patternType='solid', fgColor=Color(colors.YELLOW))

相关问题 更多 >