본문 바로가기
Engineering/Python

[python] openpyxl을 이용한 Excel 제어

by SPICA910 2022. 7. 2.
반응형

오늘은 새로운 라이브러리를 가져왔습니다. 

역시 공부하려면 프로젝트를 만들어서 해봐야 한다는 말이 제일 정확한것 같습니다. 

자료를 정리하려고 보니 익숙한 엑셀에 넣고 돌려야 확인 및 계산, 표현이 모두 가능할것 같아 openpyxl 을 이용하고자 합니다. 

 

openpyxl

https://openpyxl.readthedocs.io/en/stable/

 

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.10 documentation

Install openpyxl using pip. It is advisable to do this in a Python virtualenv without system packages: Warning To be able to include images (jpeg, png, bmp,…) into an openpyxl file, you will also need the “pillow” library that can be installed with:

openpyxl.readthedocs.io

소개 첫문장부터 정확하게 전달해주네요. 

  • openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files

Excel 2010을 기반으로 파일을 생성하고 값을 가져오는 라이브러리입니다. 

 

설치 

Window 
$ pip install openpyxl

MAC
$ pip install --user openpyxl

Linux 
$ sudo pip3 install openpyxl

openpyxl을 이용하기 위해서는 workbook 클래스를 가져와서 작업을 시작하면 됩니다. 

아래 예시를 통해 설명을 드리겠습니다. 

 

사용예

 1. 함수 호출 하기

# openpyxl에서 Workbook을 불러들입니다. 
from openpyxl import Workbook
wb = Workbook()

# workbook을 통해 하나 이상의 위크시트가 생성됩니다.
ws = wb.active

 2. 위크시트 만들기

ws1 = wb.create_sheet("Mysheet") # 마지막 순서에 위크시트 생성 (default)

ws2 = wb.create_sheet("Mysheet", 0) # 첫번째 자리에 위크시트 생성

 - 위의 세가지 방법으로 위크시트를 생성합니다. 시트는 생성시에 자동으로 이름이 지정 됩니다. 

 

3. Cell에 접근하기

# 쎌에 직접 접근
c = ws['A4']   

# 쎌에 직접 값 입력
ws['A4'] = 4   
d = ws.cell(row=4, column=2, value=10)

# 많은 쎌에 엑세스 하기
cell_range = ws['A1':'C2']

4. 파일 저장하기

wb = Workbook()
wb.save('balances.xlsx')

  -  주의할 점은 경고없이 기존 파일에 덮어쓰게 됩니다. 

 

5. 파일 불러오기

from openpyxl import load_workbook
wb2 = load_workbook('test.xlsx')
print(wb2.sheetnames)
#결과
['Sheet2', 'New Title', 'Sheet1']

6. excel 함수 사용하기 

from openpyxl import Workbook
wb = Workbook()
ws = wb.active

# SUM 함수 사용하기
ws["A1"] = "=SUM(1, 1)"
wb.save("formula.xlsx")

 

간단하게 openpyxl의 사용법을 알아보았습니다. 

 

이제 활용해서 만드는 일만 남았습니다. 

화이팅!@.@

반응형

댓글