티스토리 뷰
반응형
가. 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 라이브러리를 사용한 다양한 작업을 보여주고 있습니다. 이 라이브러리를 활용하여 엑셀 파일을 다루는 데 도움이 될 것입니다.
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 코렐
- 수업활용
- 사진
- 수업자료
- 마인드맵
- 교과연구회
- 시간관리
- 미술
- 자기주도학습
- 팝차트
- 독서
- 가요차트
- 자기계발
- 멜론
- 프로그램
- 대학원
- 장기자랑
- 명상
- 명언
- 교육
- 아인슈타인
- RCY
- ChatGPT
- 멜론차트
- 유틸
- 2008년
- 동영상
- 참고작품
- 아이들
- 파이선
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함