使用openpyxl填充单元格颜色?

2024-06-28 20:41:12 发布

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

我目前正在为Python2.7使用OpenPyxlv2.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(或其他单元格)的颜色吗?


Tags: fromimportws颜色a1colorworkbookfont
3条回答

这对我有效。他们改变了一切,你在互联网上看到的大部分帮助都来自于我所看到的openpyxl库的旧版本。

# Change background color 
xls_cell.style = Style(fill=PatternFill(patternType='solid',
                                        fill_type='solid', 
                                        fgColor=Color('C4C4C4')))

样式的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 hex颜色。您可以将其作为'rrggbb'传入,默认alpha为00,或者使用'aarrggbb'指定alpha。在openpyxl.styles.colors中,如果需要快速获取一个常量,则将一组颜色定义为常量。

我认为问题在于您试图将填充对象指定给样式。

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

相关问题 更多 >