使用 openpyxl 用颜色填充单元格?

新手上路,请多包涵

我目前正在为 Python 2.7 使用 openpyxl v2.2.2,我想为单元格设置颜色。我使用了以下进口

import openpyxl,
from openpyxl import Workbook
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell

以下是我尝试使用的代码:

 wb = openpyxl.Workbook()
ws = wb.active

redFill = PatternFill(start_color='FFFF0000',
                   end_color='FFFF0000',
                   fill_type='solid')

ws['A1'].style = redFill

但我收到以下错误:

 Traceback (most recent call last)
  self.font = value.font.copy()
AttributeError: 'PatternFill' object has no attribute 'font'

关于如何使用 openpyxl 设置单元格 A1(或任何其他单元格)的颜色有什么想法吗?

原文由 Ahmed Rashad 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 879
2 个回答

我认为问题在于您正在尝试将填充对象分配给样式。

ws['A1'].fill = redFill 应该可以正常工作。

原文由 Charlie Clark 发布,翻译遵循 CC BY-SA 3.0 许可协议

样式的 API 再次更改。对我有用的是

my_red = openpyxl.styles.colors.Color(rgb='00FF0000')
my_fill = openpyxl.styles.fills.PatternFill(patternType='solid', fgColor=my_red)
cell.fill = my_fill

颜色是 alpha RGB 十六进制颜色。您可以将其作为 'rrggbb' 传递,默认 alpha 为 00 或使用 'aarrggbb' 指定 alpha。一堆颜色被定义为常量 openpyxl.styles.colors 如果你需要快速抓住一个。

原文由 ldrg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏