Win32com

Sam (토론 | 기여)님의 2021년 10월 12일 (화) 13:05 판 (→‎개요)

1 개요

파이크로소프트에서 개발한 Component Object Model. 컴포넌트 객체를 이용해 프로그램을 개발하는 모델.

프로그래밍언어와 상관없이 개발된 객체를 사용할 수 있게 해준다. C++같은 언어로 개발된 객체도 파이썬에서 사용할 수 있게끔.

1.1 설치

ModuleNotFoundError: No module named 'win32com' 라는 에러가 뜬다. pip이 아니라 다음의 링크로 들어가 버전에 맞는 모듈을 다운받는다.

https://github.com/mhammond/pywin32/releases

파이썬을 자동으로 찾아 설치해준다.

1.2 사용

import win32com.client

Dispatch 메서드를 사용해 MS에서 개발된 모든 어플리케이셔을 이용할 수 있다.

객체명 = win32com.client.dispatch("InternetExplorer.Application")

2 액셀 다루기

의도 설명 예시
엑셀객체생성 객체명=win32com.client.dispatch("Excel.Application")
액셀창 켜기 액셀을 실행한다.(없어도 됨) 객체명.Visible = True

2.1 워크북 및 워크시트

의도 설명 예시
워크북 생성 엑셀파일을 생성한다. 워크북 = excel.Workbooks.Add()
워크시트 생성 시트를 생성한다. 워크시트 = 워크북.Worksheets("시트명")
불러오기 워크북.excel.Workbooks.Open('c:\\주소.xlsx')
저장 워크북.SaveAs('c:\\주소.xlsx')
엑셀 종료 excel.Quit()

2.2 셀 조작

의도 설명 예시
셀 선택 셀에 값을 기입한다.

좌표는 x, -y 순으로.

워크시트.Cells(1, 1).Value = "기입할 값"
셀 선택 범위선택에 주로 쓰인다. 워크시트.Range("A1:C1").value = "기입할 값"
셀에 색 넣기 셀 선택 후 옵션기입.

컬러옵션은 구글에서 excel.application colorindex로 검색하면 나온다.

워크시트.Cells(1, 1).Interior.colorIndex= 값

3 문제해결

3.1 "ImportError: DLL load failed: %1은(는) 올바른 Win32 응용 프로그램이 아닙니다"

일반적으로 주식 트레이딩 따위를 위해 64bit 환경에서 32bit 파이썬을 사용할 때 라이브러리들의 충돌로 나타나는 메시지이다. 아나콘다로 32비트 환경을 만들어주고 라이브러리들을 설치하게 되는데, 재부팅하면 이게 다시 64bit로 되돌아가 충돌해 발생하는 에러이다.

3.1.1 해결법

3.2 pywintypes.com_error: (-2147221164, '클래스가 등록되지 않았습니다.', None, None)

주식 트레이딩 따위를 사용할 때 사용하는 파이썬이 32bit이 아니어서 발생하는 에러.