파이선의 좋은점은 여기저기에 많은 3rd party 모듈이 있다는 것이다.

다양한 3rd party 모듈을 이용하면 많은 프로그래밍 분야에서 사용이 가능하다


xlsxwriter 와 openpyxl 을 파이선을 다루는 모듈을 사용할 때 많이 사용한다고 합니다.

다만 xlsxwriter는 기존의 파일을 open 하여 수정하는 것이 불가하다고 하네요.(이점 참고하세요)


엑셀을 다루는 여러 3rd party 모듈이 있으나 여기 글에서는 openpyxl 이라는 모듈을 다루어 보도록 하겠습니다.


파이선 3.4 로 진행했습니다


<PyPi : 파이선에서 운영하는 다양한 Package 릴리즈 페이지>

 http://pypi.python.org/


<openpyxl - download>

https://pypi.python.org/pypi/openpyxl/2.3.1





<openpyxl - document>

http://pythonhosted.org/openpyxl/

document를 잘 보고 예제를 따라하면 내것으로 만들기가 좋습니다

2.3.1 버전이 올라와 있으니 해당 버전으로 다운로드를 합니다.

단지 영어라는 막연한 두려움이 있지만 예제만 따라해 보셔도 대충 감이 온다는 점.



[openpyxl-2.3.1.tar.gz ] 파일을 다운로드

압축을 해제하고 풀린 경로에 가서

$ python setup.py install 하여 설치합니다



from openpyxl import Workbook from openpyxl.styles import Font, Side, Border # Workbook 생성 wb = Workbook() # Workbook을 생성하면 적어도 하나의 워크시트를 생성한다. ws1 = wb.active ws1.title = "Example1" # 1. 시트의 행렬의 번호를 입력하여 Text 입력이 가능 ws1['A1'] = "A1_Test Text" # 2-1 시트에서 셀을 변수로 만들고 c = ws1.cell('A2') # 2-2 아래처럼 각 셀에 대해 value 입력, font 설정 등을 할 수 있다. c.value = "A2 zone" c.font = Font(name='Arial', size=14) c.border = Border(left=Side(border_style="thin", color='FF000000'),right=Side(border_style="thin",color='FF000000'),top=Side(border_style="thin",color='FF000000'), bottom=Side(border_style="thin", color='FF000000')) # 3. row, column 을 지정하여 셀을 변수로 리턴할 수 있다. d = ws1.cell(row=2,column=2) d.value = "(2,2) text" # 같은 workbook에 새로운 시트를 추가할 때 ws2=wb.create_sheet() # 번호를 지정하면 아래 번호에 sheet를 추가한다. #ws2=wb.create_sheet(1) # 새로운 시트의 이름은 Sheet2 라고 하자 ws2.title="Sheet2" # 저장은 간단합니다. wb.save('example.xlsx')




간단한 예제였지만 Document 들을 보고 금방 습득할 수 있도록 간단하게 사용이 가능합니다.



어떠한 양식이 있는 text 를 엑셀화 시키고 싶다면 실사용 예로 아래와 같이 방향성을 가져도 될것같습니다.

시간이 난다면 간단한 예제로 다음시간에 한번 다뤄 보도록 할께요


[1] text 파일이 생성됨(가져오거나) (공백문자로 구분되거나 스트링 처리가 가능한 양식)

[2] 해당 text 파일을 읽어옴

[3] 라인단위나, 지정한 단위별로 list화 시킨 후에

[4] 리스트를 읽어오면서 엑셀화 시킴(loop 구문을 이용하여 row,column 변경 처리를 함)

    서식 폰트 내용 등등등등

[5] 저장 ( 현재시간 등으로 저장 )

[6] 읽어 들인 text 파일을 renaming하여 하위폴더에 포관



이렇게 코드를 짠 후 python이 설치되지 않은 컴퓨터에서도 실행될 수 있도록 배포를 하고 싶으면 py2exe 와 같은 3rd party 모듈을 사용하면 됩니다.

허나 지금 py2exe 에서 openpypl이 잘 include 되지 않는 이슈가 있긴한데, 이를 임시로 피해가는 방법도 다음 시간에 다뤄보도록 할께요.

Posted by HHHimchan
,