본문으로 건너뛰기
실습하기

openpyxl 주요 메서드 알아보기

Workbook 객체는 Excel 파일 전체를 의미합니다.

주로 load_workbook 함수로 Excel 파일을 불러온 후, 변수 wb(Workbook의 약자)에 저장합니다.

Sheet 객체는 Excel 파일 내의 각 시트를 의미합니다.

주로 변수 ws(Worksheet의 약자)에 워크북의 특정 시트를 저장하고, 이를 통해 시트의 데이터를 다룹니다.

이번 수업에서는 openpyxl의 주요 메서드를 알아보겠습니다.


1. active 메서드

active 메서드는 wb.active와 같이 워크북 객체에서 현재 활성화된 시트를 가져옵니다.

Excel 파일을 열면 가장 먼저 보이는 시트가 활성화된 시트입니다.

active 메서드 사용 예시
from openpyxl import load_workbook

# Excel 파일 불러오기
wb = load_workbook('input_file.xlsx')

# 현재 활성화된 시트 가져오기
ws = wb.active

print(ws.title) # 활성화된 시트의 이름 출력

이 메서드를 사용하면 현재 활성화된 시트에 바로 접근할 수 있어 편리합니다.

참고로 title 속성을 사용하면 시트의 이름을 지정하거나 변경할 수 있습니다.

title 속성 사용 예시
# 시트 이름 변경
ws.title = "MySheet"

print(ws.title) # 변경된 시트의 이름 출력

2. create_sheet 메서드

create_sheet 메서드는 새로운 시트를 생성합니다.

기본적으로는 끝에 시트를 추가하지만, 특정 위치에 추가할 수도 있습니다.

create_sheet 메서드 사용 예시
# 맨 끝에 시트 추가
new_sheet = wb.create_sheet("NewSheet")

# 첫 번째 위치에 시트 추가
first_sheet = wb.create_sheet("FirstSheet", 0)

wb.save('output_file.xlsx')

이 메서드를 사용하면 원하는 위치에 새로운 시트를 쉽게 추가할 수 있습니다.


3. rows 메서드

rows 메서드는 시트의 모든 행을 가져옵니다. 이를 통해 시트의 데이터를 행 단위로 쉽게 처리할 수 있습니다.

rows 메서드 사용 예시
# 시트의 모든 행을 순회하며 값 출력
for row in ws.rows:
for cell in row:
print(cell.value)

이 메서드는 시트의 데이터를 순회하거나 분석할 때 매우 유용합니다.


4. columns 메서드

columns 메서드는 시트의 모든 열을 가져옵니다. rows 메서드와 비슷하게 열 단위로 데이터를 처리할 수 있습니다.

columns 메서드 사용 예시
# 시트의 모든 열을 순회하며 값 출력
for col in ws.columns:
for cell in col:
print(cell.value)

열 단위로 데이터를 다뤄야 할 때 columns 메서드를 사용하면 효율적입니다.


5. copy_worksheet 메서드

copy_worksheet 메서드는 기존 시트를 복사하여 새로운 시트를 생성합니다. 이 메서드를 사용하면 비슷한 구조의 시트를 빠르게 복사할 수 있습니다.

copy_worksheet 메서드 사용 예시
from openpyxl import load_workbook

wb = load_workbook('input_file.xlsx')

# 현재 활성화된 시트 가져오기
ws = wb.active

print(ws.title) # 활성화된 시트의 이름 출력

이 메서드는 동일한 형식의 시트를 여러 개 만들어야 할 때 매우 유용합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!