pywin32 (win32com) 엑셀 명령어 정리

import win32com.client

excel = win32com.client.Dispatch("Excel.Application") # 엑셀실행
excel.Visible = True # (True/False) 엑셀이 화면에 보이게 하기
workbook = excel.Workbooks.Add() # 워크북 새로만들기
workbook = excel.Workbooks.Open("피벗테이블예제.xlsx") # 워크북 오픈
workbook = excel.Workbooks.Open(r"C:\outsourcing\kmong_서민국\재정산금액산정엑셀재처리\씨네허브\2016-052.xlsx") # 워크북 오픈
worksheet = workbook.Worksheets("Sheet1") # 시트 지정
worksheet = workbook.ActiveSheet # 활성시트 지정

# worksheet를 추가
worksheet2 = workbook.Worksheets.Add()
worksheet2.Name = "파이썬"

# 모두 새로고침
workbook.RefreshAll() # 모두 새로고침 누름

# 셀 접근
worksheet.Range('A174').Value = 'hello!' # 셀주소 A174 에 'hello' 입력
worksheet.Range('A1:A10').Value = 'hello!' # 셀주소 A1~A10 범위내에 모두 'hello!' 입력
worksheet.Cells(1, 1).Value = "hello world" # (x,y) 좌표로 셀위치로 접근 / 값입력

#range로 다중범위 지정해서 값 넣기
worksheet.Range('A3:B4, A6:B7, D3:F7').Value = "Hi2" # 범위 여러개 지정 및 값 입력
worksheet.Range(worksheet.Cells(3,1), worksheet.Cells(3,3)).Value = "Hi2"

worksheet.Range("B1").Interior.ColorIndex = 27 # 셀 컬러 지정 # 색상표 참조

# cell의 폭 조정
worksheet.Columns(1).ColumnWidth = 10
worksheet.Range("B:F").ColumnWidth = 20

# cell의 높이 조정
worksheet.Rows(1).RowHeight = 40
worksheet.Range("2:100").RowHeight = 60

# 데이터 변수
data = worksheet.Cells(2, 1).Value
print(worksheet.Cells(1, 1).Value)

# 범위 지정 복사/붙여넣기
worksheet.Range("A1:D24").Copy(worksheet2.Range("A1:D24")) # worksheet의 A1:D24의 내용을 -> worksheet2 로 카피 # 앞에 워크시트가 from 뒤가 to
worksheet.Range("A1:D24").Copy(worksheet2.Range("D1")) # worksheet의 A1:D24의 내용을 -> worksheet2 D1 로 카피

# 셀 내용 글씨체 / 사이즈 / 스타일등
worksheet.cells(1,1).Font.name = "맑은 고딕" # worksheet.cells 에서 cells 의 c 가 대소문자 구문 안해도 무방
worksheet.cells(1,1).Font.Size = 14 # 글씨크기
worksheet.cells(1,3).Font.Bold = True # 굵게
worksheet.cells(1,3).Font.italic = True # 글씨 기울기
worksheet.cells(1,3).Font.Underline = True #밑줄
worksheet.Range("A1").font.ColorIndex = 40 # 글씨 색상

# 셀 테두리
worksheet.Range("B2").BorderAround(ColorIndex = 16,Weight = 3,LineStyle = 1) # 셀 하나
worksheet.Range("B2:C8").BorderAround(ColorIndex = 16,Weight = 3,LineStyle = 1)

#셀 안쪽까지 모두 테두리 지정하려면
rng = worksheet.Range("B2:C8") #범위 설정
rng.Borders.LineStyle = 1 #선 스타일
rng.Borders.ColorIndex = 14 #선 색상
rng.Borders.Weight = 2 #선 굵기

# 셀에 맞춤 (셀서식 - 맞춤 - 셀에맞춤)
worksheet2.Range("D3").ShrinkToFit = True

# 서식 지우기
worksheet.Range("B2:C8").ClearFormats()

# 정렬
# 연습용 작성
worksheet.cells(2,1).Value = '위로정렬'
worksheet.cells(1,2).Value = '왼쪽정렬'
worksheet.cells(2,2).Value = '가운데정렬'
worksheet.cells(2,3).Value = '우측정렬'
worksheet.cells(3,2).Value = '아래로정렬'

# cell의 폭 조정
worksheet.Range("A:C").ColumnWidth = 40
# cell의 높이 조정
worksheet.Range("1:3").RowHeight = 60

#B1
worksheet.Range("B1").VerticalAlignment = -4160  #위로 정렬
worksheet.Range("B1").HorizontalAlignment = -4108  #가운데 정렬(수평)

#B3
worksheet.Range("B3").VerticalAlignment = -4107  #아래로 정렬
worksheet.Range("B3").HorizontalAlignment = -4108  #가운데 정렬(수평)

#A2
worksheet.Range("A2").HorizontalAlignment = -4131  #왼쪽으로 정렬
worksheet.Range("A2").VerticalAlignment = -4108  #가운데 정렬(수직)

#C2
worksheet.Range("C2").HorizontalAlignment = -4152  #오른쪽으로 정렬
worksheet.Range("C2").VerticalAlignment = -4108  #가운데 정렬(수직)

#B2
worksheet.Range("B2").VerticalAlignment = -4108  #가운데 정렬(수직)
worksheet.Range("B2").HorizontalAlignment = -4108  #가운데 정렬(수평)


# 시트의 row, column count
worksheet.UsedRange.Columns.Count
worksheet.UsedRange.Rows.Count

# 행/열 추가
worksheet.Rows(8).EntireRow.Insert()
worksheet.Columns(8).EntireColumn.Insert()
worksheet.Range("C2:D3").Insert()      # 아래로
worksheet.Range("C2:D3").Insert(1)     # 오른쪽으로
worksheet.Rows(2).Insert()             # 행 전체 삽입
worksheet.Columns("B").Insert(1)           # 열 전체 삽입

# 행/열 삭제
worksheet.Rows(8).EntireRow.Delete()
worksheet.Columns(8).EntireColumn.Delete()

# 자동 행렬 너비 높이 맞춤
worksheet.Columns.AutoFit() # 셀 자동 열너비 맞춤
worksheet.Rows.AutoFit() # 셀 자동 행높이 맞춤

# 서식 클리어
worksheet.Range(f"A1:A10").ClearFormats() # 서식 클리어


workbook.Save() # 저장
workbook.SaveAs('c:\\Users\\Jason\\Desktop\\test.xlsx') # 다른이름으로 저장 
excel.Quit() # 엑셀 종료

2 thoughts on “pywin32 (win32com) 엑셀 명령어 정리”

Leave a Comment