본문 바로가기
업무자동화

파이썬으로 엑셀파일 읽기

by 감튜 2023. 2. 23.
반응형

파이썬 파일 만들기

파이썬파일 생성하기 

저는 바탕화면에 아무렇게나 폴더를 만들다 보니 직박구리 폴더가 만들어졌습니다. 어떤 폴더명이든 상관없습니다. 일단 폴더명에서 오른쪽버튼을 눌러 New- pythonFile을 눌러 excel이라고 이름을 지어주겠습니다. excel.py가 생겼을 겁니다. 한 줄 한 줄 코드를 가져와서 함께 공부해 보겠습니다.

 

파이썬 언어 이해하기

from openpyxl import load_workbook

가장 첫줄에 위 코드를 그대로 붙여 넣기 해주시면 됩니다. 지난 시간에 우리는 이미 openpyxl이라는 것을 interpreter에 설치하였습니다. 10~20년 전에는 모든 코드를 시작부터 하나하나 다 만들었어야 한다면 지금은 누군가가 짜놓은 기본 코드 묶음을 library라고 하고 저장해 두었습니다. 우리는 그것을 가져와 쓰기만 하면 되기 때문에 단순 복사 붙여 넣기 만으로도 충분히 프로그램을 만들고 자동화를 할 수 있다고 자신할 수 있었습니다. 파이썬에는 자체적으로 특별한 문법들을 색을 다르게 하여 표현해주고 있습니다. 우리가 보기에 좋아 보이도록 말이죠. 까만 화면에 하얀 글씨만 써내려 져 간다면 어디에 무엇이 잘 못되었는지, 오타가 있는지, 줄은 잘 맞춰져 있는지 알아보기 어렵습니다. 가독성이 떨어지기 때문이죠. 그렇지만 파이썬은 우리가 실수할 확률을 줄여주기 위하여 글씨의 색, 들여 쓰기 등으로 눈에 띄게 보여줍니다. 

그렇다면 위 코드의 의미는 뭘까요? 아주 큰 도서관을 가보셨습니까? 책이 어디있는지 대분류, 중분류, 소분류를 통해 원하는 책이 어디에 있을지 위치를 유추해 볼 수 있죠. from 은 도서관 전체로, import는 대분류 되어있는 방 하나 정도로 이해하시면 좋을 것 같습니다. 깊게 들어가면 시작부터 머리가 아파질 테니, 우리는 이쯤에서 넘어가도록 하겠습니다. 

 

일단 바탕화면에서 엑셀파일 하나를 만들어주시고 이름을 practice.xlsx라고 만들어줍니다. 코드를 그대로 쓰시려면 파일명을 똑같이 써줘야 합니다. 파일을 실행시켜 sheet1의 시트명을 "3단"으로 바꿔줍니다. 시트안에는 A1:A10까지 구구단 3단을 써주겠습니다. 다 되셨으면 저장하시고 파일을 꺼주시면 됩니다.

파이썬에서 엑셀파일 읽어오기

wb = load_workbook(filename='practice.xlsx', read_only=True)
ws = wb['3단']

for row in ws.rows:
    for cell in row:
        print(cell.value)

  다음 코드를 사진과 같이 붙여줍니다. 앞으로 추가로 보여드리는 코드는 그림처럼 다음줄에 이어 붙여주면 되겠습니다. 코드를 한줄 한 줄 읽어 보도록 하겠습니다. 3번째 줄 wb= load_workbook(~)에서 제일 앞에 있는 wb는 다른 문자로 바꿔도 상관이 없습니다. sss로 바꿔도, aa로 바꿔도 상관은 없습니다. 하지만 우리가 코드를 간단히 쓴다면 모르겠지만, 길어질 수 있고, 나중에 이 코드를 봤을 때 이하하기 위해 workbook의 약자인 wb를 보편적으로 많이 쓰고 있습니다. ( ) 안에 빨간 글씨, 초록글씨, 주황글씨 다양하게 나와 있죠? 완벽히 이해할 필요는 없습니다. 우리는 공부보다도 간단히 사용하는 게 목표니까요. 중요한 건 초록 글씨입니다. 우리가 만들었던 파일명과 똑같은 practice.xlsx 가 나와있습니다. 혹시 파일명을 다른 걸로 만드신 분은 아마 나중에 문제가 생길 겁니다. 최대한 이해하기 전까지는.이나 ()까지도 완벽하게 따라주셔야 실행이 됩니다.  중요한 것은 파일명을 다른 것을 읽고 싶다고 하시면 초록색글씨 부분만 다른 엑셀파일명을 넣어주시면 됩니다. 

  ws는 무슨 약자일까요? worksheet의 약자입니다. 마찬가지로 다른 글자로 써도 상관은 없지만 보다 이해하기 쉽게 하기위해, 나중에 뭘 썼는지 기억하기 위해 일반적으로 ws로 사용합니다. 

 

  ws=wb['3단'] 의 wb는 위에서 정한 wb를 가져온 것입니다. 만약 다른 문자로 쓰길 원하신다면 이렇게도 가능합니다. 

aa = load_workbook(filename='practice.xlsx', read_only=True)
ws = aa['3단']

wb를 똑같이 aa로 바꿔봤습니다. 이렇게 해도 문제없이 실행은 되지만 추천드리지 않습니다.

 

for row in ws.rows:
    for cell in row:
        print(cell.value)

이것은 엑셀의 모든 내용을 파이썬 화면에 읽어주는 명령어라고 생각하시면 됩니다. 계단처럼 쓰인 것은 파이썬의 표현 방법이라고 생각하시면 좋겠습니다. 저 칸은 스페이스바 4칸 차이라고 생각하시면 되겠습니다. for 구문과 같은 내용들은 나중에 설명드리기로 하고 일단 위와 같이 쓰시면 엑셀을 실행하지 않고 셀간의 내용들을 파이썬일 읽어주게 됩니다. 

실행시켜 보겠습니다.

오른쪽 버튼을 눌러 Run 'excel' 버튼을 눌러주시면 

다음과 같이 'practice.xlsx'파일의 "3단"이라는 시트에 있는 모든 내용을 읽어주게 됩니다. 

 

여러분은 읽어오기를 성공하셨습니다. 다음에는 그럼 엑셀에 내용을 고쳐 보겠습니다.

반응형

댓글