파이썬(Python)

[ openpyxl ] 엑셀 파일 불러오기, load_workbook() 함수

카루루1007 2024. 10. 30. 15:13
728x90
반응형

load_workbook() 함수엑셀 파일을 열고 

Workbook 객체를 반환하는 역할을 합니다.

 

728x90

 load_workbook() 함수로 열 수 있는 확장자

 

구    분 내    용
.xlsx Office Open XML SpreadsheetML 파일 (엑셀 2007 이상에서 사용되는 기본 형식)
.xlsm 매크로가 포함된 Office Open XML SpreadsheetML 파일
.xltx Office Open XML SpreadsheetML 템플릿 파일
.xltm 매크로가 포함된 Office Open XML SpreadsheetML 템플릿 파일

 

openpyxl이 열 수 있는 확장자는

openpyxl.reader.excel의 

SUPPORTED_FORMATS 상수에 정의 되어 있습니다.

SUPPORTED_FORMATS = ('.xlsx', '.xlsm', '.xltx', '.xltm')

 

아래 코드로 확인이 가능합니다.

from openpyxl.reader.excel import SUPPORTED_FORMATS

print(SUPPORTED_FORMATS)

 

 load_workbook 함수의 정의

 

load_workbook(filename, read_only=False, keep_vba=KEEP_VBA, data_only=False, keep_links=True, rich_text=False)
매개변수 필수여부 기본값 내용
filename 필수 - 열고자 하는 엑셀 파일의 경로를 문자열로 입력
read_only 선택 False True 설정 시 읽기 모드로 파일을 열며, 이 경우 수정 불가
keep_vba 선택 False True 설정 시 VBA 코드 보존(단순히 보존하는 것이며, VBA 코드 실행 불가)
data_only 선택 False - False : 수식 자체를 가지고 온다.
- True : 수식의 결과값을 가지고 온다.
keep_links 선택 True 외부 통합 문서에 대한 링크를 유지할지 여부 결정
- True : 유지 / False : 제거
rich_text 선택 False - True : 셀 서식이 있는 텍스트 보존
- False : 일반 텍스트로 변환

 

반응형

 data_only

 

data_only에 

False를 전달하면 수식 자체를 가지고 오고,

True를 전달하면 수식의 결과값을 가지고 옵니다.

 

아래와 같은 데이터가 있습니다. 

합계 부분에는 SUM() 함수를 사용하여 계산한 결과가 있습니다.

 

아래 코드를 가지고 테스트 하시면 됩니다.

파일 경로와 시트 이름은 별도로 지정하셔야 합니다.

from openpyxl import load_workbook

file_path = r"C:\Users\karur\Desktop\통합 문서11.xlsx"
sheet_name = "3반"

workbook = load_workbook(file_path, data_only=False)

sheet = workbook[sheet_name]

for row in sheet.iter_rows():
    row_data = []
    for cell in row:
        row_data.append(cell.value)
    print(row_data)

 

위 데이터를 data_only = False로 전달하여 값을 가지고 올 경우

아래 그림과 같이 데이터가 출력됩니다.

 

위 데이터를 data_only = True로 전달하여 값을 가지고 올 경우

아래 그림과 같이 데이터가 출력됩니다.

 

 마치며

 

잘 모르겠는 것은 rich_text

공식문서에는 앞서 말한 것과 같이 작성되어 있지만,

True와 False로 설정 했을 때 차이를 모르겠다...

여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.

파이썬 공부하기

 

 

728x90
반응형