2016-08-26 4 views
0

기본 형식을 변경하고 셀을 채우려면 형식을 적용해야합니다. 나는 셀이 하나 하나 속성을 설정할 수 있습니다 Openpyxl - 스타일을 변수로 생성

from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Color 

ws1.cell(row=1,column=1).font=Font(color=colors.WHITE,size=9) 
ws1.cell(row=1,column=1).fill=PatternFill(fill_type="solid", start_color='0000FF', end_color='0000FF') 
...and so on 

템플릿 스타일을 생성하여,이 일을보다 효율적인 방법이 있나요, 그래서 난 단지

ws1.cell(row=1,column=1).style=TemplateStyle 
+0

이것은 openpyxl 버전 2.4에서 가능합니다. –

+0

우연히 http://openpyxl.readthedocs.io/en/latest/styles.html의 'Styling Merged Cells'섹션을 살펴 보셨습니까? 적어도 개별 셀의 스타일링에 대한 대안이 될 것 같습니다. – BenWS

+0

@BenWS 나는 그 부분을 확인했으나 각각의 개별 속성을 스타일링하는 것에 관한 부분 만 가지고있었습니다. 셀을 반복하는 방법을 알고 있지만 가능한 경우 템플릿/변수 특성뿐만 아니라 스타일 템플릿을 만들어 코드를보다 효율적으로 만들려고합니다. 나는 그 페이지에서 무엇이든 놓쳤는가? –

답변

0

어쩌면 '라는 이름의 스타일 같은 것을 쓸 수 있습니다 '옵션이 있습니다. 나는 이것이 찰리 클락이 말한 것이라고 생각한다. 다소 제한적인 설명을 찾을 수 있습니다. openpyxl 2.4.0 documentation

다음과 같이 보일 수 있습니다.

from openpyxl.styles import NamedStyle, Font, PatternFill 

template_style = NamedStyle(name="template_style") 
template_style.font = Font(color=colors.WHITE,size=9) 
template_style.fill = PatternFill(fill_type="solid", start_color='0000FF', end_color='0000FF') 

ws1.cell(row=1, column=1).style = template_style 

나는 NamedStyle의 대괄호 안에 이름을 참조하는 방법을 잘 모르겠지만, 나는 그것이 어떤가에 관련되는 변수와 동일 할 필요가 없다는 것을 알고있다. 문서에서는 대괄호로 묶인 변수와 이름에 동일한 이름을 사용하므로 동일한 작업을 수행합니다.

관련 문제