Programming

; develop a program

Back-End/Python

[Python] openpyxl

Clloud_ 2023. 6. 28. 16:33
반응형

이번 포스팅에서는 파이썬의 라이브러리 중 하나인 openpyxl에 대하여 공부를 해보고자 한다.

 


openpyxl란

openpyxl은 파이썬에서 Excel 파일을 다루기 위한 라이브러리이다.
이 라이브러리는 Excel 파일을 생성, 수정, 읽기 및 저장할 수 있는 기능을 제공한다.
또한 파이썬의 다른 라이브러리와 함께 사용될 수 있으며, 데이터 분석, 데이터 처리, 보고서 생성 등 다양한 작업에 유용하게 활용된다.

 

openpyxl은 .xlsx 파일 형식을 지원하며, Excel 2010 이상에서 작동한다.
따라서 openpyxl을 사용하면 Excel 파일의 워크시트, 셀, 행, 열 등을 조작할 수 있다.

만약 다른 Excel 파일 형식인 .xls나 .csv 등을 처리하려면 다른 라이브러리를 사용해야 한다.

 

openpyxl의 주요 기능

  • Excel 파일의 데이터를 읽고 쓰기
  • Excel 파일의 셀의 스타일, 색상, 글꼴, 정렬 등의 속성을 변경
  • Excel 파일의 워크시트에 대한 추가, 삭제, 이름 변경 등의 작업 수행
  • Excel 파일에서 차트 생성 및 조작

 

openpyxl에서 제공하는 기능과 개념

  • 워크북 (Workbook)
    Excel 파일 전체를 나타내는 개념으로, 워크북에는 여러 개의 워크시트(Sheet)가 포함될 수 있다.
  • 워크시트 (Sheet)
    Excel 파일 내의 하나의 시트를 나타냅니다.
    워크시트는 이름, 행, 열, 셀 등의 속성을 가지고 있다.
    openpyxl을 사용하여 워크시트를 생성, 삭제, 선택, 이름 변경 등의 작업을 수행할 수 있다.
  • 셀 (Cell)
    워크시트 내의 개별적인 셀을 나타낸다.
    각 셀은 행과 열의 위치로 식별되며, 셀에는 데이터, 스타일, 수식 등을 포함할 수 있다.
    openpyxl을 사용하여 셀의 값을 읽고 쓰는 작업을 수행할 수 있다.
  • 행 (Row)과 열 (Column)
    워크시트 내에서 데이터가 포함된 행과 열을 나타낸다.
    openpyxl을 사용하여 행과 열을 추가, 삭제, 숨기기, 조작하는 등의 작업을 수행할 수 있다.
  • 스타일 (Style)
    openpyxl은 셀의 서식, 폰트, 배경색 등 다양한 스타일 요소를 조작할 수 있는 기능을 제공한다.
    스타일을 사용하여 셀의 외관을 변경하거나, 텍스트 포맷팅, 테두리, 색상 등을 설정할 수 있다.

 


사용 예시

다음은 openpyxl을 사용하여 Excel 파일을 생성, 수정, 읽기 및 저장하는 예시이다.

 

1. 설치

먼저, openpyxl 라이브러리를 설치해야 한다.

pip install openpyxl

 

2. Excel 파일 생성

openpyxl을 사용하여 새로운 Excel 파일을 생성할 수 있다.

from openpyxl import Workbook

# 워크북 생성
workbook = Workbook()

# 현재 활성화된 워크시트 선택
sheet = workbook.active

# 데이터 입력
sheet["A1"] = "Hello"
sheet["B1"] = "World!"

# Excel 파일 저장
workbook.save("example.xlsx")
  • 위 코드는 "Hello"와 "World!"라는 데이터를 A1, B1 셀에 입력하고, "example.xlsx"라는 이름의 Excel 파일로 저장하는 예시입니다.

 

3. Excel 파일 수정 및 읽기

openpyxl을 사용하여 이미 존재하는 Excel 파일을 수정하거나 읽을 수 있다.

from openpyxl import load_workbook

# Excel 파일 불러오기
workbook = load_workbook("example.xlsx")

# 워크시트 선택
sheet = workbook.active

# 데이터 수정
sheet["A1"] = "Hello OpenPyXL"

# 데이터 읽기
cell_value = sheet["B1"].value
print(cell_value)
  • 위 코드는 "example.xlsx" 파일을 불러와 A1 셀의 데이터를 수정하고, B1 셀의 값을 읽는 예시이다.
  • 수정한 내용은 원본 파일에 저장하지 않았으므로, 추가적인 저장 작업이 필요할 수 있다.

 

4. 행과 열 조작

openpyxl을 사용하여 행과 열을 추가, 삭제, 숨기기, 조작할 수 있다.

from openpyxl import Workbook

# 워크북 생성
workbook = Workbook()

# 워크시트 선택
sheet = workbook.active

# 행 추가
sheet.append(["Name", "Age", "City"])  # 행 추가
data = [("John", 25, "New York"), ("Emma", 30, "London"), ("Mike", 35, "Paris")]
for row in data:
    sheet.append(row)

# 열 추가
sheet.insert_cols(2)  # 2번째 열 추가

# 행 삭제
sheet.delete_rows(2)  # 2번째 행 삭제

# 행 숨기기
sheet.row_dimensions[3].hidden = True  # 3번째 행 숨기기

# Excel 파일 저장
workbook.save("example.xlsx")
  • 위 코드는 워크북을 생성하고, 워크시트에 행과 열을 추가하고 삭제하며, 행을 숨기는 예시이다.

 

5. 스타일 적용

openpyxl을 사용하여 셀에 스타일을 적용할 수 있다.

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment

# 워크북 생성
workbook = Workbook()

# 워크시트 선택
sheet = workbook.active

# 데이터 입력
sheet["A1"] = "Hello"
sheet["A2"] = "World!"

# 스타일 적용
font = Font(name="Arial", size=12, bold=True, italic=False)
sheet["A1"].font = font

alignment = Alignment(horizontal="center", vertical="center")
sheet["A1"].alignment = alignment

# Excel 파일 저장
workbook.save("example.xlsx")
  • 위 코드는 A1 셀에 "Hello"라는 데이터를 입력하고, 해당 셀에 폰트와 정렬 스타일을 적용하는 예시이다.

이와 같이 openpyxl을 사용하여 Excel 파일을 생성, 수정, 읽기 및 저장하고, 행과 열을 조작하며, 스타일을 적용할 수 있다.

 


반응형

'Back-End > Python' 카테고리의 다른 글

[Python] heapq 모듈  (0) 2023.06.30
[Python] deque  (0) 2023.06.27
[Python] 정규 표현식(Regular Expression)  (0) 2023.06.26
[Python] zip 함수  (0) 2023.06.24
[Python] isdigit 메서드  (0) 2023.06.21