본문 바로가기
코딩 연습/파이썬 기초(예제)

파이썬 openpyxl 활용 엑셀 시트 이름 가져오기

by good4me 2022. 4. 13.

goodthings4me.tistory.com

파이썬 openpyxl로 엑셀 파일에서 수 개의 워크시트 이름을 가져온 후 워크시트 내용을 출력하는 파이썬 코드를 작성해본다.

 

 

python openpyxl 활용하여 엑셀 워크시트 내용 복사해보기

 

특정 폴더에 엑셀 파일(강릉시.xlsx) 있고, 다음과 같이 워크시트 2개에 내용이 있을 떄

폴더 엑셀파일 내용
폴더 엑셀파일 내용

 

good4me.co.kr

 

 

엑셀 파일을 로딩 후 워크시트 이름과 컬럼 제목을 가져온다

import os
import openpyxl
from datetime import datetime


directory = os.getcwd() + '\\excel\\'  # 현재 디렉토리 + 작업 폴더 추가
print(directory)
names = os.listdir(directory)  # 파일 및 폴더 전체를 리스트 형태로 반환
print(names)
print(directory + names[0])

wb = openpyxl.load_workbook(directory + names[0])
ws = wb.active

# 워크시트 이름 가져오기 - 리스트
sheetnames = wb.sheetnames
print(sheetnames)  # ['남문동', '홍제동']



[실행 결과]

D:\pythonDev\excel\
['강릉시.xlsx'] 
D:\pythonDev\excel\강릉시.xlsx
['남문동', '홍제동']
  • 지정된 폴더에 여러 엑셀 파일이 있을 경우, 반복문을 통해서 처리할 수 있다.

 

Worksheet 객체로 시트 내용 가져오기

for sht in sheetnames:
    sheet = wb[sht]
    print(sheet)  # <Worksheet "OOOOO">

    for row in range(0, sheet.max_row):
        cols = []
        for col in sheet.iter_cols(min_col=0, max_col=sheet.max_column):  # col= A, B, C,...
            cols.append(col[row].value)
        print(cols)

    # # 다른 방법
    # for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=0, max_col=sheet.max_column):
    #     cols = []
    #     for cell in row:
    #         cols.append(cell.value)
    #     print(cols)

wb.close()



[실행 결과]

<Worksheet "남문동">
['법정동코드', '법정동명', '지번']
[4215010200, '강원도 강릉시 남문동', '131-1'] 
[4215010200, '강원도 강릉시 남문동', '131-4'] 
[4215010200, '강원도 강릉시 남문동', '131-5'] 
[4215010200, '강원도 강릉시 남문동', '131-6'] 
[4215010200, '강원도 강릉시 남문동', '131-12']
[4215010200, '강원도 강릉시 남문동', '132-1'] 
[4215010200, '강원도 강릉시 남문동', '132-3'] 
[4215010200, '강원도 강릉시 남문동', '132-3'] 
[4215010200, '강원도 강릉시 남문동', '132-4'] 
[4215010200, '강원도 강릉시 남문동', '133']   
[4215010200, '강원도 강릉시 남문동', '134-1'] 
[4215010200, '강원도 강릉시 남문동', '134-2'] 
[4215010200, '강원도 강릉시 남문동', '134-3'] 
[4215010200, '강원도 강릉시 남문동', '134-4'] 
[4215010200, '강원도 강릉시 남문동', '135']   
<Worksheet "홍제동">
['법정동코드', '법정동명', '지번']
[4215010100, '강원도 강릉시 홍제동', '1-1']   
[4215010100, '강원도 강릉시 홍제동', '1-2']   
[4215010100, '강원도 강릉시 홍제동', '1-3']   
[4215010100, '강원도 강릉시 홍제동', '1-4']   
[4215010100, '강원도 강릉시 홍제동', '1-6']
  • 워크시트를 가져와서 최대 row(행)까지 column(열)의 내용을 추출하여 row 별로 cols 리스트로 추가하여 출력한다.
  • 다른 워크북을 만들고 워크시트에 cols 리스트 내용을 추가할 경우, 워크북 간에 복사가 가능해진다.

 

 

 

 

[Python] 파이썬을 활용한 업무자동화 - 엑셀 자동화(with openpyxl) 연습 코드 정리

업무 자동화(RPA)를 위한 툴로 많이 사용되는 것은 엑셀이다. 특히, 엑셀 VBA로 여러 데이터 관련 복잡한 업무를 자동화하는데, 엑셀이 아닌 파이썬으로도 가능한지 찾다가 유튜브에서 영상 하나

goodthings4me.tistory.com

 

 

[Python] 파이썬으로 이메일 리스트(엑셀) 불러와서 email 정상 여부 체크하기 (re 정규식과 openpyxl 사

■ 엑셀로 정리한 수집 이메일의 정상 여부를 체크하기 위해 파이썬 openpyxl 라이브러리를 사용하여 email 리스트(엑셀)를 하나씩 불러와서 정규 표현식으로 email 정상 여부 체크하고, 정상이면 옆

goodthings4me.tistory.com

 

 

openpyxl 엑셀 파일 확장자(.xls) 에러 해결하는 방법

파이썬 openpyxl 모듈로 엑셀 파일 여러 개를 병합하려고 했으나 오류가 발생 - openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent ...

goodthings4me.tistory.com

 

댓글