본문 바로가기
Python/openpyxl

파이썬 openpyxl 간단한 성능 향상 팁

by PySun 2024. 1. 10.
반응형

소개

openpyxl 라이브러리를 사용하여 엑셀 데이터를 처리할 때 성능 향상은 항상 고려해야 할 중요한 요소입니다. 이번 포스팅에서는 몇 가지 간단하면서 효과적인 성능 향상 팁을 소개하겠습니다. 이러한 팁들을 활용하면 대용량 데이터나 복잡한 작업에서도 빠르고 효율적으로 엑셀을 다룰 수 있습니다.

1. calculation 모드 변경:

openpyxl의 calculation 모드를 변경하여 수식 계산을 일시적으로 중지하고, 대량의 데이터를 읽거나 쓸 때 속도를 향상시킬 수 있습니다.

from openpyxl import load_workbook

file_path = 'large_data.xlsx'

# 파일을 열 때 calculation 모드를 'manual'로 설정
workbook = load_workbook(file_path, read_only=True, data_only=True, calculation='manual')

# 작업 완료 후 모드를 'auto'로 복원
workbook.calculation = 'auto'

2. write_only 모드 활용:

데이터를 엑셀에 쓰기만 하는 경우에는 write_only 모드를 활용하여 성능을 향상시킬 수 있습니다.

from openpyxl import Workbook

# 새로운 워크북을 write_only 모드로 생성
workbook = Workbook(write_only=True)

# 시트 생성 및 데이터 작성
sheet = workbook.create_sheet()
sheet.append(['Header 1', 'Header 2', 'Header 3'])

# 대용량 데이터 추가
for row_data in large_data:
    sheet.append(row_data)

# 파일 저장
workbook.save('large_data_output.xlsx')

3. 벡터화된 연산 활용:

벡터화된 연산을 활용하여 데이터를 반복문 없이 한 번에 처리하여 처리 속도를 향상시킬 수 있습니다.

from openpyxl import load_workbook

file_path = 'large_data.xlsx'

# 파일을 열 때 read_only 모드 사용
workbook = load_workbook(file_path, read_only=True)

# 벡터화된 연산을 활용하여 데이터 처리
data = [cell.value for row in workbook.active.iter_rows() for cell in row]
processed_data = [process_value(value) for value in data]

마무리

이제 여러분은 openpyxl 라이브러리를 사용하여 엑셀 데이터를 처리할 때 성능을 향상시키기 위한 몇 가지 간단하면서도 효과적인 팁을 알아보았습니다. 계산 모드 변경, write_only 모드 활용, 벡터화된 연산 등을 적절히 활용하면 대용량 데이터를 효율적으로 다룰 수 있습니다. 성능 향상을 위한 다양한 팁들을 활용하여 엑셀 데이터 처리의 효율성을 높여보세요.

반응형