2. 해외선물/2-6. 기타자료 (파이썬 함수 등)

(파이썬) 엑셀 내용을 파이썬에서 출력하기 (2) openpyxl 을 통해 엑셀의 데이터값 가져오기 (A1 셀주소)

봄이오네 2023. 11. 14. 08:01
반응형

 

목 차
1. 들어가며
2. 사전설명
   1) openpyxl 임포트 하는 방법
   2) 엑셀에서 불러온 파일 경로 설정
   3) 엑셀파일을 여는 방법
   4) 활성화된 시트 열기
   5) 엑셀의 데이터값 얻기
3. 코드설명
4. 마치며

 
 

1. 들어가며

지난 글에서는 openpyxl의 활용 필요성에 대해 알아보았다. 워낙 추상적으로 설명하다보니, 그 활용도에 대해 제대로 어필이 되지 않은것 같아 아쉽긴하다. 하지만, 나중에 알고리즘을 세분하여 만들때 분명 openpyxl은 필요한 라이브러리이다. 지금은 이런 내용이 있구나... 라고 생각하고, 향후 필요할 때 활용해 보면 좋을 것 같다.
 
이번 글에서는 openpyxl의 활용에 대해 알아보자.
 


2. 사전설명

1) openpyxl 임포트 하는 방법

openpyxl은 다른 라이브러리와 동일하게 import하면 된다. 아래 코드처럼 import openpyxl을 입력하면 끝이다.

import openpyxl

 
 

2) 엑셀에서 불러온 파일 경로 설정

활용할 엑셀의 파일 경로를 설정하여야 한다. 우리는 간단하게 dir 경로에 넣는다고 가정한다. 3번째 줄에서 바탕화면에 있는 엑셀(확장자는 xlsx)의 경로를 dir 변수에 넣는다.

import openpyxl

dir = r'C:\Users\User\Desktop\excel_test.xlsx'  # 경로 설정

 
 
아래 파일은 해외선물 나스닥의 '23년 12월물의 11월 4일 1분봉 데이터 일부이다.

excel_test.xlsx
0.01MB

 
 

3) 엑셀파일을 여는 방법

엑셀파일을 여는 방법은 openpyxl 에 포함된 load_workbook를 이용한다.

import openpyxl

dir = r'C:\Users\User\Desktop\excel_test.xlsx'  # 경로 설정

wb = openpyxl.load_workbook(dir)    # 엑셀파일 열기

 
 

4) 활성화된 시트 열기

활성화된 시트를 여는 방법은 5줄에서 엑셀파일을 열었고, 6줄에서는 엑셀파일의 활성화된 시트(active)를 ws라는 변수에 담는다.

import openpyxl

dir = r'C:\Users\User\Desktop\excel_test.xlsx'  # 경로 설정

wb = openpyxl.load_workbook(dir)    # 엑셀파일 열기
ws = wb.active                      # 현재 활성화된 시트 얻기 (마지막 저장된 시트)

print(ws)


### (expected result)
### <Worksheet "Sheet1">

 
 

5) 엑셀의 데이터값 얻기

엑셀의 데이터값을 얻으려면 어떻게 해야할까?
< 그림1 >에서 E5는 11/4일의 05:40분 시가인 15185이다. E5셀의 값을 받아오는 코드를 알아보자.

그림1. 엑셀(excel_test) 파일에 들어있는 내용

 


3. 코드설명

글이 굉장히 길어질 것 같다. 이 글에서는 openpyxl을 통해 엑셀 데이터 받아오는 기본구조만 이해하자.

import openpyxl

dir = r'C:\Users\User\Desktop\excel_test.xlsx'  # 경로 설정

wb = openpyxl.load_workbook(dir)    # 엑셀파일 열기
ws = wb.active                      # 현재 활성화된 시트 얻기 (마지막 저장된 시트)

# print(ws)

aa1 = ws['E5'].value

print(type(aa1))
print(aa1)


### (expected result)
### <class 'int'>
### 15185

 
1줄 : openpyxl을 임포트한다.
3줄 : 엑셀파일의 경로를 지정하여 변수 dir에 넣어준다.
5줄 : 엑셀파일을 연다.
6줄 : 활성화된 시트를 얻는다.
10줄 : 이글의 핵심이다. 변수 aa1에 활성화된 시트(ws)의 E5에 있는 값(value)을 넣어라.
 
11줄 : aa1의 태형은 int형이다. E6의 태형을 출력했다면, 15185.75이므로 실수형(float)로 출력될 것이다.
12줄 : aa1은 엑셀의 E5인 15185이다.
 


4. 마치며

openpyxl을 통해 엑셀의 데이터를 받아오는 방법을 알아보았다. 여기서 핵심은 엑셀의 활성화된 시트를 변수에 저장할 수 있어야 하며, 엑셀 데이터 값을 받아오려면 해당셀을 기재하고, 그 끝에 value를 붙여주어야 한다는 것이다.
 
처음에는 낯설게 느껴지는 구조이다. 천천히 익숙해져 보도록 하자.
 
다음글에서는 엑셀의 데이터 길이가 동적으로 변할 때, 데이터의 행과 열의 길이를 구하는 방법을 알아보자.
 
 

반응형