파이썬으로 엑셀 사용하기

2023. 9. 14. 15:17DATA PROGRAMMING/PYTHON

파이썬을 통해서 다른 프로그램들을 사용할 수 있을까? 마이크로소프트가 개발한 COM을 활용한다면 가능하다. 이 COM이라는 기능을 활용해 엑셀을 사용해 보려고 한다.

 

파이썬으로 엑셀 사용하기

 

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True

먼저 win32com.client 모듈을 불러오고 엑셀을 실행한다 여기서  'excel.Visible = True'까지 해줘야 실제로 우리 눈에 보이는 엑셀 창이 실행된다. 하지만 이를 해주지 않아도 실행은 이미 된 상태이고 우리 눈에 엑셀 창이 보이지 않는 상태일 뿐이다.

 

wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")

이렇게 실행된 엑셀에 워크북과 워크시트를 만든다. 워크시트는 우리가 엑셀을 사용할 때 쓰는 엑셀 페이지 한 장(한 페이지)를 생각하면 되고 워크북은 이런 워크시트의 상위개념이다.

그러면 이렇게 엑셀을 통해 워크시트 Sheet1이 잘 만들어진 것을 볼 수 있다.

 

ws.Cells(1, 1).Value = "hello world"
wb.SaveAs('c:\\Users\\user\\Downloads\\test1.xlsx')
excel.Quit()

위 코드를 작성하면 1행 1열의 셀에 'hello world'라는 문구를 입력하고 두 번째 줄에 입력한 코드를 통해 해당 경로에 test1 엑셀 파일을 저장하고 엑셀 프로그램을 종료한다.

 

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
wb = excel.Workbooks.Open('c:\\Users\\user\\Downloads\\test1.xlsx')
ws = wb.ActiveSheet
print(ws.Cells(1,1).Value)
excel.Quit()

위 코드를 통해 앞서 작성한 엑셀 파일을 실행하여 1행 1열의 셀에 저장된 값을 읽을 수 있다.

ws.Cells(1,2).Value = "is"
ws.Range("C1").Value = "good"
ws.Range("C1").Interior.ColorIndex = 10

해당 코드를 통해 1행 2열의 값을 'is'로 설정하고, C1 즉 1행 3열의 값을 'good'로 설정하고, 마찬가지로 C1의 셀 색깔을 10(초록색)으로 설정할 수 있다. 각 코드들은 프로그램이나 값에 따라 다르다. 이런 값이나 코드들 구글에 검색하면 모든 값들이 정리되어 있으니 필요할 때마다 꺼내서 사용하면 된다.