개발/Python

[파이썬] Openpyxl 행열 배경색 변경 Attribute 오류

MinorMan 2022. 10. 13. 11:03
반응형

<질문>

여기에서 몇 가지 예를 살펴보고 배경색을 전체 행과 열로 설정하려고 했습니다. 나는 했어

 import openpyxl
 from openpyxl.styles import PatternFill
 wb = openpyxl.load_workbook(self.inputfile)
 ws = wb.active
 ws['A1'].fill = PatternFill(bgColor="FFC7CE", fill_type = "solid")`

`ws[1].fill =PatternFill(bgColor="FFC7CE", fill_type = "solid")를 수행하면 속성 오류가 발생합니다.

위의 코드는 단일 셀(A1)을 채웁니다. 그러나 전체 행(1)과 전체 열(A)을 채우려면 어떻게 해야 합니까?


<답변1>

에 지정된 열에서 시작하여 모든 열을 반복합니다.min_col=1 논쟁.
행 인수로 한 행 후에 끝납니다.min_row=1 그리고max_row=1 같다.
인수min_row/max_row 데이터 외부에서도 모든 행을 가리킬 수 있습니다.

  for rows in ws.iter_rows(min_row=1, max_row=1, min_col=1):
    for cell in rows:
      cell.fill = PatternFill(bgColor="FFC7CE", fill_type = "solid")

전체 열에 대해 다음을 사용합니다.

iter_cols(min_col=None, max_col=None, min_row=None, max_row=None)

너만 준다면min_* 속성 값, 최대 행/열이 사용됩니다.

Python:3.4.2 - openpyxl:2.4.1로 테스트됨


<답변2>

허용된 답변에 대한 약간의 수정(흰색 배경):

   for rows in sheet.iter_rows(min_row=1, max_row=40, min_col=1, max_col=40):
    for cell in rows:
        cell.fill = PatternFill(start_color='00FFFFFF', end_color='00FFFFFF', fill_type="solid")

이것은 행 1 열 1에서 시작하여 행 40 및 열 40으로 가는 시트에 흰색 채우기를 제공합니다.


<답변3>

수락 된 답변을 시도했지만 행 배경이 항상 검은 색이므로 변경해야합니다.PatternFill 다음으로.

  cell.fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type = "solid")
반응형