-
Win32com로 엑셀 다루기IT-Information/Issues 2023. 3. 7. 22:26
들어가며
Win32com
이것은 마이크로스트에서 제공하는 위돈우 프로그램을 파이썬이라는 언러를 매개체로 제어할 수 있도록 만든 aPI다. 이것을 사용하면 엑셀, 파워포인트, 워드, 아웃룩 등 프로그램을 제어할 수 있다. 제어하는 방법과 아웃룩을 제어하는 방법을 안다면 일상에서 체계를 만들어갈 수 있다.
Openpyxl를 공부하면 win32com으로 엑셀을 다루는 것이랑 무슨 차이가 있는지 궁금할 수 있지만 openpyxl과 차이라면 win32com을 사용했을 때 엑셀 실행 상태에서 제어가 가능하다는 점을 들 수 있다. Openpyxl은 해당 엑셀파일을 실행하면 파이썬 코드에서 접근이 불가능하다. Win32com을 사용해 엑셀을 제어하면 실행상태를 바로 볼 수 있어 편리하다. 실시간으로 확인이된다.
준비
Win32com은 파이썬의 내장모듈이 아니기에 따로 설치가 필요하다.
버전에 대한 이슈가 있기에 다운그레이드가 필요하다
Pip install –upgrade pywin32==225
로 명령어를 입력하면 설치된다.
1. Import
Import win32com.client
2. Application 열기
Excel = win32com.client.dispatch(“excel.application”)
Excel.visible=true # 엑셀보이게
3. Workbook 및 worksheet 객체 생성
Wb=excel.workbooks.add() # 엑셀 프로그램에 worksheet 추가
Ws=wb.worksheets(“sheet1”) #worksheet 설정
Openpyxl과 문법은 다르나 workbook과 worksheet를 객체로 설정한다는 과정은 같다. 위 코드를 실행하면 엑셀 “통합문서”가 만들어지면서 sheet1이 생성된다.
Wb=excel.workbooks.open(r”c:\user\desktop\vs code\project\17.win32com\data.xlsx”)
오픈 함수를 사용하여 괄호 안 엑셀 파일 전체 경로를 지정한다.
4. 셀에 데이터 쓰기
셀 row, col 값 지정과 값 넣기(range(“a1”)과 동일함)
Ws.cells(1,1).value=”win32com excel test1”
#ragne로 값 넣기(Cell(1,2)와 동일함)
ws.Range("A2").Value = "win32com excel test2"
#range로 다중범위 지정해서 값 넣기1
ws.Range("A3:C3").Value = "win32com excel test3"
#range로 다중범위 지정해서 값 넣기2(위 코드와 동일 표현)
ws.Range(ws.cells(3,1), ws.cells(3,3)).Value = "win32com excel test3"
결과