티스토리 뷰

안녕하세요. 구스입니다. 


이 번글에서는 파이썬 강의를 이용하여 엑셀을 열고, 닫는 방법에 대해서 알아볼까 합니다.

지난 글을 통해서 win32 라이브러리를 설치하고, 이를 이용하여 LabVIEW라는 프로그래밍 언어툴을 제어해 보았습니다.


pywin32와 ActiveX 제어에 대한 내용을 좀더 알고 싶다면 아래의 링크를 참고하세요.



자 그럼 이제 pywin32를 이용하여 엑셀을 제어해보도록 합시다.

모든 언어에서 사용하는 방법은 동일합니다. 


사용하기에 앞서 엑셀이 가지고 있는 오브젝트(개체)에 대한 이해가 필요합니다. 왜 Excel.Application이 아래의 Dispatch 함수에 붙어있는지 간략히 살펴보도록 하죠.



위의 글에서 확인을 할 수 있듯이, 엑셀의 개체들은 아래와 같이 구성이 됩니다.

엑셀 개체는 크게 Application, Workbook, Worksheet, Cell, Range등으로 구분을 할 수 있습니다.



위의 엑셀 오브젝트를 파이썬에서 열기 위해서는 아래와 같이 코드를 구성할 수 있습니다.

아래의 코드는 간략히 Excel.Application을 실행시키고, 워크북과 워크시트를 하나 추가한뒤 특정 셀에 데이터를 넣고, 셀의 배경색을 변경하고 있습니다.



그리고 변경이 완료되면 저장하고, 엑셀을 종료합니다.


import win32com.client


Excel = win32com.client.Dispatch("Excel.Application")

Excel.Visible = 1


wb = Excel.Workbooks.Add()

ws = wb.Worksheets("Sheet1")

ws.Cells(1,1).Value = "Hello"

ws.Cells(1,2).Value = "This is Gus World!"

ws.Cells(1,2).Interior.ColorIndex = 45; 


wb.SaveAs("저장할 경로 및 파일명")

Excel.Application.Quit()


위의 함수들이 생소하죠. 저도 100% 알지는 못하며, 생소한 것들도 많이 있습니다. 엑셀에 대한 함수는 MSDN에서 찾을 수가 있습니다.


엑셀 오브젝트 및 함수, 프로퍼티 확인하기

https://msdn.microsoft.com/en-us/library/office/ff194068.aspx


그럼 위의 코드를 실행해 볼까요. 

PyCharm에서 코드를 작성하고 파일을 저장할 경로에 폴더를 생성합니다. (폴더가 없으면 에러가 납니다. 추가적으로 폴더 생성하는 코드를 작성해도 됩니다.)




생성된 폴더가 제대로 되어있는지 확인합니다. 그리고 파일이 아무것도 없음을 체크하였습니다.



위의 코드를 실행시켜봅니다.

그럼 엑셀이 자동으로 실행이되고, 먼가 번쩍번쩍 거리면서 특정 셀에 알고리즘에 넣은 구문이 처리가 되고, 저장되면서 엑셀이 종료됩니다.



해당 폴더를 다시 확인하니 엑셀파일이 저장이 되었네요. 



엑셀 파일을 열어서 확인을 해보겠습니다.

엑셀의 셀을 처리하는 코드는 아래와 같은데요.


ws.Cells(1,1).Value = "Hello"

ws.Cells(1,2).Value = "This is Gus World!"

ws.Cells(1,2).Interior.ColorIndex = 45;


생성된 엑셀 파일이 제대로 들어간 것을 확인할 수 있어요. 



결과를 보면 A1에 Hello가 A2에 This is Gus World!라는 문자열이 추가되어 있습니다.

그리고 A2의 배경색은 변경이 되었죠. 


엑셀 매크로로 VBA에서 셀 배경색 변경하기(Interior.ColorIndex, Interior.Color)

http://gusrealworld.tistory.com/47


엑셀 매크로 VBA에서 셀 폰트 색 및 크기 변경하기(Font.Size. Font.Color)

http://gusrealworld.tistory.com/48



이 글에서는 파이썬에서 엑셀 오브젝트 활용 및 데이터 처리방법에 대해서 알아보았습니다.

그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.



댓글