안녕하세요.
이번에는 저번 win32.com 포스팅에서 얘기했듯이, Excel에 접근하는 방법에 대해서 소개하려고 합니다.
#01. Win32com 모듈을 불러옵니다.
(win32com.client를 다 쓰기가 귀찮아서, win32로 대신 불러올 수 있게 as 커맨드를 썼습니다.)
import win32com.client as win32
#02. Excel 프로그램을 활성화시켜주는 작업을 수행합니다.
excel = win32.Dispatch("Excel.Application")
excel.Visible = True
Excel.Application은 Excel 파일을 다루기 위한 프로그램을 실행을 시키며, excel.Visible은 그것을 시각화하는 것입니다. 또한, Excel과 마찬가지로 카티아에 접근하기 위해서는 Excel.Application 대신에 Catia.Application을 적용하여 Catia 쪽에 접근할 수 있습니다.
#03. Excel Sheet를 쓰기 위한 새파일 형성 또는 기존 파일 열기
excel1=excel.Workbooks.Add()
sheet=excel1.Worksheets("Sheet1")
기존에 파일이 없을때, 새로운 파일 및 Sheet를 생성하기 위한 방안입니다. 그래서 보통 코딩을 할때는 기존에 정해둔 경로에 파일이 없을 경우에 위와 같은 코드로 생성을 시켜라라는 명령어를 적용시키는게 효율적인 방안으로 생각되어 집니다.
excel1 = excel.Workbooks.Open(_Path_)
sheet=excel1.ActiveSheet
위와 같은 방법으로 적용을 하시면, 기존에 있는 파일을 읽는 부분입니다. Path에서는 당연히 String 구분이 들어가야 하며, 정규표현식으로 r을 붙여주시면 에러방지를 할 수 있을 것 같아요.
예시 :
_Path_=r'C:\Temp\abc.xlsx'
excel1= excel.Workbooks.Open(_Path_)
#04. Excel Sheet에 읽고 쓰기
sheet.Cells(1,1).Value=1
sheet.Range('A1:B2').Value='Python'
맨처음 커맨드는 Cell(1,1)에 숫자 1이라는 숫자를 쓰라는 명령어입니다. 또한, 범위로도 넣을 수 있는데요. 일반적으로 도면을 그리듯이 왼쪽 위에서 오른쪽 아래로 두가지의 Cell을 선택해주어 범위를 잡아줍니다. 그래서 A1:B2라는 부분의 범위를 설정하게 된다면, A1,A2,B1,B2 등 총 4가지의 Cell이 잡히게 되며 그 안에 'Python'이라는 문자가 들어가게 됩니다. 또한, 연속적인 범위가 아닌 각자 다른 범위를 잡는 경우도 참고해주시면 좋을 것 같습니다.
(위의 예시 Code 적용시 구현되는 부분)
a=sheet.Cells(1,1).Value
a라는 변수로 Cell(1,1)에 있는 값을 받는 경우이며, 다수의 변수를 받을때에는 리스트(List) 함수를 이용하여 작성할 수 있습니다.
예시 :
name=list()
while self.worksheet.Cells(i,col).Value != None :
name_part=worksheet.Cells(i,col).Value
name.append(name_part)
i+=1
#05. Excel Cell에 색상입히기
sheet.Range("A1").interior.ColorIndex =3
사실 이 부분은 해석 프로그램으로 최적화를 진행할때 가장 최적화된 모델에 색상을 입히기 위해 찾아본 것입니다. 각 아래 색상표에 따라 입력 숫자를 달리하면, 적용되는 부분이 달라집니다.
(Reference : https://blog.naver.com/new27kr/221020428184)
#06. Excel 파일 저장
excel1.Save()
excel1.SaveAs(r'c:\Temp\abc.xlsx')
excel.Quit()
위은 저장, 다른이름으로 저장, 닫기 등을 대신하는 명령어입니다. 확인하시면 어렵지 않게 구현할 수 있으실 것 같습니다.
'Program > Python' 카테고리의 다른 글
Python 기초 :: 클래스(Class) (0) | 2018.02.09 |
---|---|
Python :: 파이썬으로 Catia 접근 및 수정하기(win32com 모듈 이용) (0) | 2018.01.31 |
Python :: Win32com 모듈 사용하기 (5) | 2018.01.23 |
Python 기초 :: 반복문(For 문) (0) | 2018.01.17 |
Python 기초 :: 조건문(IF 문) (0) | 2017.11.26 |
댓글