* Win32com.client로 엑셀 다루기 포스팅
1편 : 2021.11.23 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 사용해서 엑셀 사용하기 기초
2편 : 2021.12.14 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 사용해서 엑셀 시트 다루기
3편 : 2021.12.22 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 사용해서 엑셀 차트 다루기
4편 : 2021.12.30 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 사용해서 엑셀 셀서식 지정하기
5편 : 2022.01.02 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 사용해서 엑셀 영역 선택하는 방법 4가지
6편 : 2022.01.17 - [코딩/업무자동화] - [파이썬/업무자동화] win32com.client 엑셀 파일 저장 및 옵션
먼저 Workbook 및 WorkSheet를 새로 성생해서 임의의 텍스트를 엑셀 시트에 입력해보았다.
1. Worokbook 및 WorkSheet 생성
import win32com.client
excel = win32com.client.Dispatch("Excel.Application") #엑셀 프로그램 실행
excel.Visible = True #앞으로 실행과정을 보이게
wb = excel.Workbooks.Add() #엑셀 Workbook 파일 1개 새로 생성
ws = wb.Worksheets.Add() #엑셀 시트를 새로 생성
다른 포스팅에서 설명했던 부분으로 내용 생략
2. 다중 범위 지정하여 시트에 데이터 쓰기
#다중범위 써보기1
ws.Range(ws.cells(1,1), ws.cells(1,3)).value = "win32com excel 서식(font style)"
#다중범위 써보기2
ws.Range("A2:B2").value = "win32com excel 서식(font 색상)"
#다중범위 써보기3
ws.Range("A3").value = "win32com excel 서식(Cell 색상)"
첫번째 '다중범위 써보기1'의 경우 아래 코드와 동일하다. "A1:A3"를 cells 속성을 활용하여 표현한 방법이다.
#다중범위 써보기1
ws.Range("A1:A3").value = "win32com excel 서식(font style)"
<결과>
3. 셀서식1 - Font style(글씨체, 크기, 굵게, 기울기 등)
#셀서식1. font size 및 font 굵게, 글씨체
#"A1" 글씨체 변경
ws.cells(1,1).Font.name = "굴림"
#"B2"글씨 사이즈 변경
ws.cells(1,2).Font.Size = 14
#"C3"글씨 스타일 변경(Bold, Italic, Underline)
ws.cells(1,3).Font.Bold = True #굵게
ws.cells(1,3).Font.italic = True #글씨 기울기
ws.cells(1,3).Font.Underline = True #밑줄
<결과>
4. 셀서식2 - Font 색상 지정
#셀서식2. font 색상 지정
ws.Range("A2").font.ColorIndex = 40
ws.Range("B2").font.ColorIndex = 50
<결과>
참고로, win32com 에서는 ColorIndex라는 색상 번호를 제공한다. 컬러인덱스는 1~56 으로 설정할 수 있으며 번호별 이미지는 아래를 참고하자.(저작권 문제로 본 글에 이미지는 넣지 않음)
아래 글에서 보듯이 엑셀 VBA에서 제공하는 컬러인덱스를 그대로 따라간다.(같은 Microsoft에서 제공하는 언어라서 그런 것 같다.)
https://mainia.tistory.com/3103
5. 셀서식3 - Cell 색상, Cell 테두리, Cell 정렬
1) Cell 색상 지정
#셀서식3-1). 셀 색상 지정
ws.Range("A3").Interior.ColorIndex = 30
<결과>
2) Cell 테두리
#셀서식 3-2) 셀 외곽 테두리 지정
#Weight : 선 굵기, LineStyle의 경우 1:실선, 2:짧은점선, 3:긴점선
ws.Range("A1:C3").BorderAround(ColorIndex = 1,Weight = 2,LineStyle = 1)
<결과>
셀 외곽이 아닌 안쪽까지 모두 테두리를 지정하고 싶다면 아래 코드를 사용한다.
#셀 서식 3-2) 셀 안쪽까지 모두 테두리 지정
rng = ws.Range("A1:C3") #범위 설정
rng.Borders.LineStyle = 1 #선 스타일
rng.Borders.ColorIndex = 14 #선 색상
rng.Borders.Weight = 2 #선 굵기
<결과>
6. 셀서식 초기화하기
셀서식을 초기화하는 방법은 ClearFormat이라는 함수를 사용한다. ClearFormat은 내용은 보존한채 서식만 초기화한다. 다. 해당 함수는 엑셀 VBA에서도 동일하게 사용할 수 있다.
#셀서식4. 셀서식 초기화(ClearContents일 겨우 내용만 삭제, Clear는 내용,서식 모두 초기화)
ws.Range("A1:C3").ClearFormats()
주석에도 표시하였지만 ClearContents( )일 경우 내용만 삭제(서식 보존), Clear( ) 일 경우 내용 및 서식 모두 삭제한다.
<결과>
다음 포스팅에서는 셀 정렬, 행열 크기 조정, 범위 선택 방법 등의 내용을 다뤄 볼 예정이다.
'코딩 > 업무자동화' 카테고리의 다른 글
[파이썬/업무자동화] win32com.client 엑셀 파일 저장 및 옵션 (0) | 2022.01.17 |
---|---|
[파이썬/업무자동화] win32com.client 사용해서 엑셀 영역 선택하는 방법 4가지 - Range, UsedRange, CurrentRegion, SpecialCells (0) | 2022.01.02 |
[파이썬/업무자동화] win32com.client 사용해서 엑셀 차트 다루기 (0) | 2021.12.22 |
[책 소개] 사장님 몰래 하는 파이썬 업무자동화 (2) | 2021.12.20 |
[파이썬/업무자동화] win32com.client 사용해서 엑셀 시트 다루기 (0) | 2021.12.14 |