Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

이번 포스트는 openpyxl 모듈을 사용하여 이미 만들어진 엑셀파일의 데이터를 가져오도록 하겠습니다.

제가 엑셀은 VBA가 익숙하다 보니깐 python으로 엑셀을 다루려고 하다보니 많이 헷갈리네요..

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

우선 필요한 모듈을 불러옵니다.

'openpyxl' 중에서 엑셀파일을 불러 오기 위해서는 'load_workbook' 모듈이 필요합니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

엑셀파일의 경로를 지정해주고 'wb'라는 변수에 입력합니다. 그리고 엑셀파일에서 활성화 된 시트를 'ws'라는 변수에 입력합니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

엑셀시트에 임의로 글자를 입력해서 저장합니다. 

이 글자를 파이썬으로 불러오도록 하겠습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

'시트['셀위치']].value' 형식으로 쓰면 해당셀의 값이 불러와집니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

셀 값을 불러오는 다른 방법도 있습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

'시트.cell(row=행번호, column=열번호). value' 를 해도 해당셀의 값이 불러와 집니다.

그리고 'row'와 'column'을 생략하고 행,열에대한 숫자값만 넣어도 됩니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

결과값이 제대로 나왔습니다.

이번에는 데이터를 입력해 보도록 하겠습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

for 문을 써서 'B1' 셀부터 'B99'셀가지 글자를 입력해 보겠습니다.

마지막에 엑셀파일을 저장해야 하니 주의하시기 바랍니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi
Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

제대로 입력이 되었습니다.

이제는 시트를 하나 추가해서 엑셀파일에 입력한 데이터를 새로운 데이터에 복사 해 보도록 하겠습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

'create_sheet'라는 함수를 써서 'Test'라는 시트를 만들었습니다. 시트를 만들고 나서 파일을 항상 저장해 주어야 합니다. 

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

새로운 시트가 잘 만들어졌네요.

이제 여기에다 먼저 입력한 데이터를 복사해 보도록 하겠습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

우선 새로만든 시트를 'ws_test'라는 변수에 저장합니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

'iter_rows'라는 함수는 해당 시트에서 한 행씩 데이터를 가져오는 함수 입니다.

한 행씩 가져온 데이터는 다시 한번 For문을 반복해서 각 셀의 데이터를 'data'라는 변수에 list형식으로 저장하게 됩니다.

이 저장된 data변수의 list를 새로만든 'Test' Sheet에 추가합니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

결과가 잘 나왔습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

값만 가져오려고 한다면 이렇게 사용할 수도 있습니다.

'ws.values'를 사용하면 시트에서 값만 가지고 옵니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

결과가 잘 나오네요.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

'iter_rows'함수에서 각 행,열의 최소값과 최대값을 지정할 수 있습니다.

최소열을 2로 지정하고 최대행을 50으로 지정해서 실행해 보도록 하겠습니다.

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi

결과는 예상대로 B행의 50열 까지만 데이터를 가져왔네요.

append 함수를 써서 열은 "A" 열에 입력이 되었습니다.

쿠팡파트너스 활동으로 쿠팡으로부터 소정의 수수료를 받을 수 있습니다.

CAGR(연복리 수익률) 30%를 목표로 하는 파이썬 퀀트투자법이 궁금하시다면 아래 포스트를 클릭해 보시기 바랍니다.

2021.11.21 - [집구석 강의/파이썬 퀀트투자 쉽게하기] - 파이썬 퀀트투자 쉽게하기 - 1. 들어가는 글

파이썬 퀀트투자 쉽게하기 - 1. 들어가는 글

퀀트투자는 참으로 매력적인 투자방법입니다. 일정한 기준으로 종목을 선별해서 일정한 기간 후에 기계적으로 매도하고, 다시 같은 방법으로 매수합니다. 이런 작업을 계속해서 반복하다 보면

dotsnlines.tistory.com

Pyqt5 엑셀 불러오기 - pyqt5 egsel bulleoogi