現在、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(または他のセル)を設定する方法に関するアイデアはありますか?
問題は、塗りつぶしオブジェクトをスタイルに割り当てようとしていることだと思います。
ws['A1'].fill = redFill
は正常に動作するはずです。
これは私のために働いた。彼らは状況を変え、あなたがインターネットで見る助けのほとんどは私が見ているものからの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
色は、アルファRGB 16進数の色です。デフォルトのアルファを00にして'rrggbb'
として渡すか、'aarrggbb'
でアルファを指定できます。色をすばやく取得する必要がある場合、色の束はopenpyxl.styles.colors
の定数として定義されます。
in python 3.x
wb = openpyxl.Workbook()
ws = wb.active
redFill = PatternFill(start_color='FFFF0000',
end_color='FFFF0000',
fill_type='solid')
ws['A1'].fill = redFill
動作しているが、python 2.xでわからない] ws['A1'].fill=redFill