ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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과 문법은 다르나 workbookworksheet를 객체로 설정한다는 과정은 같다. 위 코드를 실행하면 엑셀 통합문서가 만들어지면서 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"

    결과

    셀에 데이터 쓰기
    셀에 데이터 쓰기

     

Designed by Tistory.