본문 바로가기

파이썬으로 자동화 프로그램 만들기

파이썬으로 엑셀 데이터 추출하기

설치

파이썬에서 엑셀 파일을 읽고 데이터를 추출하기 위해서는 openpyxl 라이브러리를 사용할 수 있습니다. 먼저 이 라이브러리를 설치해야 합니다. 설치 방법은 다음과 같습니다.

pip install openpyxl

 

이 후 엑셀을 불러오고, 읽고, 추출하는 코드를 작성하면 됩니다.

# 필요한 라이브러리를 가져옵니다.
import openpyxl

def read_excel(file_name):
    # 엑셀 파일을 엽니다.
    workbook = openpyxl.load_workbook(file_name)
    
    # 첫 번째 시트를 선택합니다.
    sheet = workbook.active
    
    # 시트의 데이터를 추출하고 출력합니다.
    for row in sheet.iter_rows(values_only=True):
        print(row)

# 엑셀 파일의 경로를 지정합니다. 파일 경로를 수정해주세요.
file_name = 'example.xlsx'
read_excel(file_name)

 

응용

더 나아가 필요한 행과 열만을 추출할 수 있습니다.

import openpyxl

def read_selected_columns(file_name, columns):
    # 엑셀 파일을 엽니다.
    workbook = openpyxl.load_workbook(file_name)
    
    # 첫 번째 시트를 선택합니다.
    sheet = workbook.active
    
    # 시트에서 선택된 열의 데이터를 추출하고 출력합니다.
    for row in sheet.iter_rows(min_col=1, max_col=sheet.max_column, values_only=True):
        selected_data = [row[col-1] for col in columns]
        print(selected_data)

# 엑셀 파일의 경로를 지정합니다. 파일 경로를 수정해주세요.
file_name = 'example.xlsx'

# 원하는 열을 선택합니다. 예를 들어, 첫 번째, 세 번째, 네 번째 열을 선택하려면 [1, 3, 4] 를 사용합니다.
columns = [1, 3, 4]

read_selected_columns(file_name, columns)

필요한 행도 위와 같은 방법으로 추출하시면 됩니다.

 

그리고 저장한 데이터를 CSV 파일로 저장해 보겠습니다. 

import openpyxl
import csv
import os

def read_selected_columns(file_name, columns):
    # 엑셀 파일을 엽니다.
    workbook = openpyxl.load_workbook(file_name)
    
    # 첫 번째 시트를 선택합니다.
    sheet = workbook.active
    
    # 데이터를 저장할 리스트를 생성합니다.
    data = []
    
    # 시트에서 선택된 열의 데이터를 추출합니다.
    for row in sheet.iter_rows(min_col=1, max_col=sheet.max_column, values_only=True):
        selected_data = [row[col-1] for col in columns]
        data.append(selected_data)

    return data

def save_to_csv(data, output_file):
    # CSV 파일을 쓰기 모드로 엽니다.
    with open(output_file, 'w', newline='', encoding='utf-8') as f:
        writer = csv.writer(f)
        
        # 데이터를 한 행씩 CSV 파일에 씁니다.
        for row in data:
            writer.writerow(row)

# 엑셀 파일의 경로를 지정합니다. 파일 경로를 수정해주세요.
file_name = 'example.xlsx'

# 원하는 열을 선택합니다. 예를 들어, 첫 번째, 세 번째, 네 번째 열을 선택하려면 [1, 3, 4] 를 사용합니다.
columns = [1, 3, 4]

# 데이터를 추출합니다.
data = read_selected_columns(file_name, columns)

# 출력할 CSV 파일의 이름을 지정합니다.
output_file = os.path.join(os.path.expanduser('~'), 'Desktop', 'output.csv')

# 데이터를 CSV 파일로 저장합니다.
save_to_csv(data, output_file)

print(f"CSV 파일이 저장되었습니다: {output_file}")

 

제게 필요한 기능은 엑셀에서 데이터를 추출해 CSV 파일로 저장하는 기능까지 인데, 궁금하거나 필요하신 기능 있으면 추가해서 작성해 보겠습니다.