본문 바로가기
Programming/Backend

[Python] 엑셀 처리 방법

by BitSense 2020. 4. 16.
반응형
pip install openpyxl

디렉토리 내의 엑셀 파일 목록 전체를 읽어서 분석하기 코드 일부

import openpyxl
import os
 
dirList = [
    'D:\\admin',
    'D:\\front'
]

currentNo = 0

def analsysEcxcel(filename, currentNo):
    # 엑셀파일 열기
    wb = openpyxl.load_workbook(filename)
    
    # 현재 Active Sheet 얻기
    ws = wb.active
    
    # Active Sheet 지정하기
    # ws = wb.get_sheet_by_name("Sheet1")
    
    # 국영수 점수를 읽기
    for r in ws.rows:
        row_index = r[0].row  # 행 인덱스
        if row_index < 2: # 첫번째 행은 칼럼 정보가 있으니 그대로 패쓰
            continue

        kor_score = r[7].value
        eng_score = r[8].value
        math_score = r[9].value
        
        if int(kor_score) > 50: # 국어 점수가 50점 초과 인원만 확인
            currentNo += 1
            print("%d > %d: %s %s %s" % (currentNo, row_index, kor_score, eng_score, math_score))

    # 엑셀 파일 종료
    wb.close()

    return currentNo

currentFileNo = 0
for dir in dirList:
    currentDir = dir

    # 현재 디렉토리 위치가 존재하는 지 확인
    if os.path.exists(currentDir) == False:
        print('no directory: %s' % currentDir)
    else:
        # 현재 디렉토리 출력
        print(currentDir + ' >>>>>>')
        fileList = os.listdir(currentDir)

        for filename in fileList:
            if filename[:1] == '~': # ~로 시작되는 임시 파일이 존재하면 패쓰
                print('except file .... <<<<<<< %s' % filename)
                continue

            currentFileNo += 1
            # 현재 파일 디렉토리 + 파일명 정리
            currentFile = '%s\\%s' % (currentDir, filename)
            currentNo = analsysEcxcel(currentFile, currentNo)

# 현재 파일 갯수를 출력. 심심하니깐.
print('File Count : %d' % currentFileNo)

 

반응형