티스토리 뷰

반응형

가. openpyxl 개요

openpyxl은 파이썬에서 Excel 파일(.xlsx)을 다루기 위한 라이브러리로, 엑셀 파일을 생성하고 편집하는데 사용됩니다. 이 라이브러리를 통해 데이터를 읽고 쓰며, 시트를 생성하고 편집하는 작업을 손쉽게 수행할 수 있습니다. 업무 자동화나 데이터 분석 프로젝트에서 매우 유용하게 활용됩니다.

나. openpyxl 설치 방법

openpyxl을 설치하려면 pip를 사용하여 간단하게 설치할 수 있습니다. 다음 명령어를 터미널 또는 명령 프롬프트에서 실행합니다.

pip install openpyxl

다. openpyxl 활용 예시 10가지

1) 엑셀 파일 생성 및 데이터 입력

import openpyxl

# 새로운 엑셀 워크북 생성
workbook = openpyxl.Workbook()

# 활성 시트 선택
sheet = workbook.active

# 데이터 입력
sheet['A1'] = '이름'
sheet['B1'] = '나이'
sheet['A2'] = 'Alice'
sheet['B2'] = 25
sheet['A3'] = 'Bob'
sheet['B3'] = 30

# 엑셀 파일 저장
workbook.save("example.xlsx")

2) 엑셀 파일 열기 및 읽기

import openpyxl

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")

# 활성 시트 선택
sheet = workbook.active

# 데이터 읽기
name = sheet['A2'].value
age = sheet['B2'].value

print(f"이름: {name}, 나이: {age}")

3) 시트 생성

import openpyxl

# 새로운 엑셀 워크북 생성
workbook = openpyxl.Workbook()

# 새로운 시트 생성
workbook.create_sheet("새로운시트")

# 엑셀 파일 저장
workbook.save("example.xlsx")

4) 셀 서식 지정

import openpyxl
from openpyxl.styles import Font, Alignment

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")
sheet = workbook.active

# 서식 지정
bold_font = Font(bold=True)
center_alignment = Alignment(horizontal="center")

# 셀에 서식 적용
sheet['A1'].font = bold_font
sheet['B1'].font = bold_font
sheet['A1'].alignment = center_alignment
sheet['B1'].alignment = center_alignment

# 엑셀 파일 저장
workbook.save("example.xlsx")

5) 데이터 필터링과 정렬

import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")
sheet = workbook.active

# 엑셀 데이터를 Pandas DataFrame으로 읽기
data = pd.DataFrame(sheet.values)

# 데이터 필터링
filtered_data = data[data[1] > 25]

# 정렬
sorted_data = filtered_data.sort_values(by=1, ascending=False)

# 정렬된 데이터를 엑셀로 저장
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active

for record in dataframe_to_rows(sorted_data, index=False, header=True):
    new_sheet.append(record)

new_workbook.save("filtered_sorted_data.xlsx")

6) 차트 생성

import openpyxl
from openpyxl.chart import BarChart, Reference

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")
sheet = workbook.active

# 데이터 범위 선택
data = Reference(sheet, min_col=2, min_row=2, max_col=2, max_row=3)
categories = Reference(sheet, min_col=1, min_row=2, max_col=1, max_row=3)

# 바 차트 생성
chart = BarChart()
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)

# 차트 위치 지정
sheet.add_chart(chart, "D2")

# 엑셀 파일 저장
workbook.save("chart_example.xlsx")

7) 엑셀 파일 병합

import openpyxl

# 엑셀 파일 열기
workbook1 = openpyxl.load_workbook("example.xlsx")
workbook2 = openpyxl.load_workbook("another_example.xlsx")

# 시트 선택
sheet1 = workbook1.active
sheet2 = workbook2.active

# 시트1에 시트2 내용 추가
for row in sheet2.iter_rows(min_row=2, values_only=True):
    sheet1.append(row)

# 엑셀 파일 저장
workbook1.save("merged_example.xlsx")

8) 데이터 검색

import openpyxl

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")
sheet = workbook.active

# 데이터 검색
search_value = "Alice"
found = False

for row in sheet.iter_rows(min_row=2, values_only=True):
    if search_value in row:
        found = True
        break

if found:
    print(f"{search_value}를 찾았습니다.")
else:
    print(f"{search_value}를 찾지 못했습니다.")

9) 데이터 수정

import openpyxl

# 엑셀 파일 열기
workbook = openpyxl.load_workbook("example.xlsx")
sheet = workbook.active

# 데이터 수정
for row in sheet.iter_rows(min_row=2, values_only=True):
    if row[0] == "Alice":
        row[1] = 26

# 엑셀 파일 저장
workbook.save("modified_example.xlsx")

10) 엑셀 파일 복사

import openpyxl

# 엑셀 파일 열기
workbook = openpy

xl.load_workbook("example.xlsx")

# 워크북 복사
new_workbook = openpyxl.Workbook()

for sheet in workbook:
    new_sheet = new_workbook.create_sheet(sheet.title)
    for row in sheet.iter_rows(values_only=True):
        new_sheet.append(row)

# 새로운 엑셀 파일로 저장
new_workbook.save("copy_of_example.xlsx")

위의 예시 코드들은 openpyxl 라이브러리를 사용한 다양한 작업을 보여주고 있습니다. 이 라이브러리를 활용하여 엑셀 파일을 다루는 데 도움이 될 것입니다.

반응형