openpyxl

openpyxl을 사용하여 셀을 색상으로 채우시겠습니까?

한판님 2021. 10. 13. 08:14

openpyxl  셀에 색상을 설정하고 싶었습니다. 

다음은 내가 시도한 코드입니다.

import openpyxl

from openpyxl import Workbook

from openpyxl.styles import PatternFill

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(또는 다른 셀)을 설정하는 방법에 대한 방법이 궁굼합니다!

 

=============================================================

(답변)

1. A1 셀을 채우기 위한 방법

   ws['A1'].style = redFill  ---------->>>> ws['A1'].fill = redFill

   style 을 fill 로 변경하시면 됩니다!

 

2. 행/열 범위를 채우기 위한 방법

for cell in ws['A1:A100']:

    cell[0].fill = redFill

 

3. 열의 모든 행을 채우려면

for cell in ws['A1:{}'.format(ws.max_row)]:

     cell[0].fill = redFill

 

4. 중첩 for 루프를 사용하여 2차원 범위를 채웁니다.

import openpyxl as op

 

fill_gen = op.styles.PatternFill(fill_type='solid',

                                       start_color='FFFFFF',

                                        end_color='FFFFFF')

for row in ws["A1:BB50"]:

        for cell in row:

             cell.fill = fill_gen

 

 

 

 

 

출처: https://stackoverflow.com/search?q=openpyxl&s=c75101b4-4189-4a4b-accb-6199be3fc86c