2016-11-07 6 views
0

열에 흰색과 녹색의 두 가지 색이 있다고 가정합니다.openpyxl에서 특정 색상의 셀을 선택하는 방법은 무엇입니까?

작업 : openpyxl을 사용하여 녹색 셀을 선택하십시오.

공식 문서 Working with styles을 읽었지만이를 수행하는 방법을 찾지 못했습니다.


예를 들어, 현재 색상의 코드를 파악하는 방법과 같이 많은 사소한 질문이 있습니까?

+0

이와 비슷한 질문이 과거에도있었습니다. 가능하지만 쉬운 일은 아니며 도움이 필요한 것보다 더 많은 코드를 제공해야합니다. –

답변

0

의 백 그라운드 색상을 설정할 수 있습니다.

이 예제에서는 openpyxl.styles.fills.PatternFill 클래스를 사용합니다. 패턴을 사용하여 균일 한 채우기를 적용합니다 (여기서는 "단색"패턴 임) 전경 색상 (녹색) 및 배경색 (단색 패턴이 보이지 않지만 회색 음영 '). 또한하여 openpyxl.styles.fills.GradientFill 클래스 그라데이션 채우기 생성 할 수

...

import openpyxl.styles 

wb = load_workbook(xls_path) 
ws = wb.active 

cell = ws["A1"] 
cell.fill = openpyxl.styles.PatternFill('solid', openpyxl.styles.colors.GREEN) 

그래서, 채우기 패턴의 색상을 얻을, 당신은 fill.fgColor (또는 fill.bgColor 배경) 속성을 읽을 수 있습니다. openpyxl.style.Color 클래스의 인스턴스를 가져옵니다.

rgb 속성 (설명 자임)을 호출하여 RGB 색상을 문자열로 가져옵니다. 참고 :이 값은 알파 색상 (투명도)과 클래식 RGB 색상의 4 가지 요소로 구성됩니다.

color = cell.fill.fgColor 
assert isinstance(color, openpyxl.styles.Color) 
assert color.rgb == "0000FF00" # Green 

하지만 모두 도움이되지 않습니다. 열이 너무이기 때문에.

워크 시트에는 column_dimensions 콜렉션이 들어 있습니다. 각 column_dimensions에는 하나 또는 여러 열 (열 그룹 개념)에 대한 속성 (스타일 등) 이 들어 있습니다. 및 max 속성이 column_dimensions 인 경우 에 열 인덱스 (그룹의 시작 및 끝 인덱스, 1부터 시작)를 제공합니다.

cd = ws.column_dimensions["A"] 
assert cd.min == 1 and cd.max == 1 

세포처럼, 당신은 열 채우기 패턴을 설정할 수 있습니다

cd.fill = openpyxl.styles.PatternFill('solid', openpyxl.styles.colors.GREEN) 

참고 : 셀 스타일 열 스타일을 통해 더 높은 우선 순위를 가지고있다. 즉, 열 스타일을 흰색으로 설정하고 셀 스타일을 녹색으로 설정하면 사용자에게 녹색 셀이 표시됩니다.

관련 문제