Python/openpyxl
파이썬 openpyxl 간단한 성능 향상 팁
PySun
2024. 1. 10. 08:00
반응형
소개
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 모드 활용, 벡터화된 연산 등을 적절히 활용하면 대용량 데이터를 효율적으로 다룰 수 있습니다. 성능 향상을 위한 다양한 팁들을 활용하여 엑셀 데이터 처리의 효율성을 높여보세요.
반응형