오늘 공부해 볼 내용은 엑셀에 쓰이는 서체를 파이썬으로 다뤄보는 것을 해보겠다.
마찬가지로 openpyxl 라이브러리가 필요하므로 안깔려있다면 깔도록 하자.
사진에 보이는 것 처럼 오늘은 유틸들이 꽤나 많다.
크게는 한 범주 안에 속하는 것들이지만, 하나하나 불러줘야 한다니 꽤나 귀찮은 작업이다! (주의할 점은 colors와 Color구분, NamedStyle과 named_style을 구분해주는 것도 중요하다.)
본론으로 들어가기 전에 알아둬야할 개념이 조금 있다.
우선
cell style : 어느 특정한 셀에 스타일을 한번 적용을 시켜서, 외부적으로 셀을 건드려 스타일을 번경할 수 없게 만든다.
Named style : 이름 그대로 스타일에 이름을 새겨서 내가 사용하고 싶을 때 사용하는 것이다. ~~체 같은게 해당한다.
그리고 위에 내가 openpyxl.styles 로 불러온 라이브러리들은 서체나 굵기 배열 배치 등에 해당하는 것이므로 영어를 안다면 알 수 있는 것들이다.
내가 원하는 셀에 적용하기.
위에서 말한 cell style에 해당하는 내용이다.
부디 어제 공부했던 내용을 숙지하고 있길 바라며 설명하면,
a1, b2 는 각각 셀을 담당하고 있는 변수로 지정해준 것이다.
이후 ft라는 변수를 어떤 폰트로 지정해 줄 것인지에 대해 정하고 (italic은 기울임이다)
각각의 셀에 적용을 시킨 모습이다.
이렇게 해주니 A1과 B2 셀에는 A2셀과 달리 레드 색상과 기울임이 적용된 형태로 글이 작성되었다. (내가 직접 바꾼거 아님 ㅠ)
color를 지정해 줄 때는 RGB계열 색상은 이름으로 적어도 되지만, 팔레트 상에 존재하는 넘버링을 입력해도 된다. (ex. #FF000000)
만약 내가 한 셀에만 지정을 해주고 싶을 때는 다음과 같이 한줄로 코딩을 해도 된다.
a1.font = Font(color=colors.RED, italic = True)
연속된 셀에 적용할 때는 전에 배운 split 을 사용해서 할 수 있다.
w1 = ['A1':'D6']
w1.font = Font(color=colors.RED, italic = True)
참고로 italic = False 는 기울임 적용을 안한 것과 같기 때문에 선언을 안해주어도 된다.
병합된 셀에 적용을 할 수 있는 방법도 있다.
merge_cells 함수를 이용해서 B2~F4까지의 셀을 통합한 후 스타일을 지정해주는 모양이다.
병합해준 셀을 호출하기 위해서 top_left_cell이라는 함수를 이용해서 B2를 지정해준다 (어디를 지정해줘도 상관 없으나, top left 라고 했으니 B2라고 해줬다.)
그 후 여러 작업을 거친 뒤 모습은..
이런 모습으로 나왔다. PatternFill과 Gradient를 적용해서 이러한 모습이 나온 것이다.
Cell Style에 대한 설명은 여기서 마치도록 하겠다.
Named_Style 내 스타일 만들기.
앞서 말했듯 내가 지정한 폰트를 만들 수 있다. 주의해야할 점은 이 폰트는 절대적인 값을 지니므로, 이름을 계속해서 새롭게 만들어주어야하는 번거로움이 있다는 것이다.
조금 길어보이지만 사실 별 다를 것 없는 내용이다.
새로운 서체를 만들어 A7에 적용했고 그 서체의 이름은 PFF이다.
여기서 주의해야할 점은 내가 방금 언급했던 폰트의 이름이다. PFF라고 지정해주면 이 폰트는 한번 사용될 때 PFF라는 이름을 지닌채 저장이 되므로, 다음 실행 때 내가 size를 변경해서 저장하면 PFF로 저장할 수 없다. 새로운 이름을 명명해주어야한다.
실행 결과는?
훌륭하게 적용되었다.
오늘 배운 것은 보면 알겠지만 사실 큰 내용은 없다. 필요할 때 숙지해서 사용하면 좋을듯한 내용이다.
다음 시간부터는 꽤나 어려운 내용을 다룰 예정이다.
'데이터 분석 > 파이썬' 카테고리의 다른 글
pandas 데이터 정제 (2) (0) | 2020.06.27 |
---|---|
판다스를 이용한 데이터 정제 (0) | 2020.06.17 |
셀레니움을 이용한 웹크롤링(Web crawling) (0) | 2020.06.03 |
파이썬 csv 사용하여 엑셀파일 다루기 (0) | 2020.05.30 |
파이썬 기초 (0) | 2020.05.30 |