我目前使用的是openpyxl v2.2.2 for Python 2.7,我想设置单元格的颜色。
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(或任何其他单元格)设置颜色有什么想法吗?
8条答案
按热度按时间eanckbw91#
我认为问题是你试图将一个填充对象分配给一个样式。
ws['A1'].fill = redFill
应该工作正常。bvn4nwqk2#
样式的API又一次改变了。对我有效的是
Color是一种alpha RGB十六进制颜色。你可以用
'rrggbb'
的形式传入,默认alpha为00,或者用'aarrggbb'
指定alpha。如果你需要快速获取一种颜色,可以在openpyxl.styles.colors
中将一堆颜色定义为常量。deyfvvtc3#
这对我很有效。他们改变了一些东西,你在网上看到的大多数帮助都是针对我所看到的旧版本的openpyxl库。
h9vpoimq4#
在Python 3.x中
那工作,但我不知道在python 2. x中,我希望工作只是把
ws['A1'].fill=redFill
xwmevbvl5#
结果-x1c 0d1x
c3frrgcw6#
对于Excel,我会这样做:
您可以用另一个单元格替换“A1”,并且start_color必须是十六进制颜色。
cqoc49vn7#
要填充行/列范围,请执行以下操作
填充列的所有行
jfgube3f8#
使用嵌套的for循环填充二维范围。
Python 3.9