본문 바로가기
파이썬

파이썬으로 엑셀파일 만들어 데이터 쓰고 저장하기

by 코딩-가이드 2025. 4. 9.
반응형

타이틀

 

이전에 엑셀파일의 내용을 불러오는 것을 알아봤습니다. 이번에는 엑셀파일을 만들고 데이터를 작성해 보겠습니다. 그리고 데이터를 추가하고, 규칙에따라 배경색을 변경하는 것까지 만들어 보겠습니다.

 

파이썬으로 엑셀파일 불러오는 방법이 궁금하다면 아래의 링크를 참고해 주세요.

https://coding-guide.tistory.com/22

 

파이썬으로 텍스트 및 엑셀 파일 불러오기

파이썬은 텍스트 파일이나 엑셀 파일을 불러오는 작업이 다른 프로그래밍 언어에 비해 매우 간단하고 직관적입니다. open() 함수로 텍스트 파일을 쉽게 읽을 수 있고, pandas 라이브러리를 사용하

coding-guide.tistory.com

 


 

 

Python을 사용하면 엑셀 파일을 자동으로 생성하고 데이터를 쉽게 입력할 수 있습니다. 이 글에서는 openpyxl 라이브러리를 이용해 엑셀 파일을 생성하고, 시트를 편집하며, 데이터를 저장하는 방법을 단계별로 설명합니다.

 

1. 간단한 엑셀파일 만들기

1-1. 샘플 코드

from openpyxl import Workbook

# 워크북 생성
wb = Workbook()

# 기본 시트 선택
ws = wb.active
ws.title = "샘플데이터"

# 헤더 작성
ws.append(["이름", "나이", "도시"])

# 데이터 추가
ws.append(["홍길동", 30, "서울"])
ws.append(["김철수", 25, "부산"])
ws.append(["이영희", 28, "대구"])

# 엑셀 파일 저장
wb.save("샘플_데이터.xlsx")
print("엑셀 파일이 생성되었습니다.")

 

1-2. 결과

1-2. 결과

 

샘플_데이터.xlsx 파일

 

1-3 코스설명

# 워크북 생성
wb = Workbook()

새로운 워크북(엑셀파일)을 생성합니다.

 

# 기본 시트 선택
ws = wb.active
ws.title = "샘플데이터"

기본으로 생성된 첫 번째 워크시트를 선택합니다. 그리고 워크시트의 이름을 "샘플데이터"로 변경합니다.

 

# 데이터 추가
ws.append(["홍길동", 30, "서울"])
ws.append(["김철수", 25, "부산"])
ws.append(["이영희", 28, "대구"])

리스트 형태의 데이터를 한 줄씩 시트에 추가합니다.

 

# 엑셀 파일 저장
wb.save("샘플_데이터.xlsx")
print("엑셀 파일이 생성되었습니다.")

작성된 데이터를 엑셀 파일로 저장합니다.

 

2. 엑셀파일에 새로운 항목 추가

이번에는 이전에 만들었던 엑셀파일에 성적이라는 항목을 추가해 보겠습니다.

2-1. 샘플 소스

from openpyxl import load_workbook

# 기존 엑셀 파일 불러오기
wb = load_workbook("샘플_데이터.xlsx")
ws = wb.active  # 기본 시트 선택

# 첫 번째 행(헤더)에 "성적" 열 추가
ws.cell(row=1, column=4, value="성적")

# 각 행에 성적 데이터를 입력 (2행부터 시작)
grades = [85, 90, 78]  # 예시 성적

for idx, grade in enumerate(grades, start=2):  # 2행부터 데이터 시작
    ws.cell(row=idx, column=4, value=grade)

# 수정된 파일 저장 (덮어쓰기 또는 새 이름으로 저장 가능)
wb.save("샘플_데이터_수정.xlsx")
print("성적 항목이 추가된 엑셀 파일이 저장되었습니다.")

 

2-2. 결과

2-2. 결과

 

샘플_데이터_수정.xlsx 파일

엑셀파일

 

2-3. 설명

 

  • load_workbook()으로 기존 파일을 불러옵니다.
  • ws.cell(row=1, column=4, value="성적")으로 네 번째 열의 첫 번째 행(헤더)에 "성적"이라는 이름을 추가합니다.
  • grades 리스트에 성적 데이터를 저장해 두고, for 루프를 이용해 각각의 학생에 맞게 입력합니다.
  • 파일은 "샘플_데이터_수정.xlsx"으로 저장하여 원본은 보존할 수 있습니다.

3. 셀에 스타일 적용

이번에는 성적 중에서 90점 이상이면 파란색으로 배경을 칠하는 샘플을 만들어 보겠습니다.

 

3-1 샘플소스

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

# 엑셀 파일 불러오기
wb = load_workbook("샘플_데이터_수정.xlsx")
ws = wb.active

# 파란색 배경 스타일 생성
blue_fill = PatternFill(start_color="ADD8E6",  # 연한 파란색
                        end_color="ADD8E6",
                        fill_type="solid")

# 2행부터 시작 (헤더 제외)
for row in ws.iter_rows(min_row=2, min_col=4, max_col=4):  # 성적 열만 순회
    for cell in row:
        if cell.value is not None and cell.value >= 90:
            cell.fill = blue_fill  # 셀 배경을 파란색으로 변경

# 변경사항 저장
wb.save("샘플_데이터_스타일적용.xlsx")
print("90점 이상 성적에 파란색 배경이 적용된 엑셀 파일이 저장되었습니다.")

 

 

3-2. 결과

3-2. 결과

 

샘플_데이터_스타일적용.xlsx 파일

샘플_데이터_스타일적용.xlsx 파일

 

3.3 설명

# 파란색 배경 스타일 생성
blue_fill = PatternFill(start_color="ADD8E6",  # 연한 파란색
                        end_color="ADD8E6",
                        fill_type="solid")

셀의 배경색을 설정하기 위한 스타일 객체를 만듭니다.

 

# 2행부터 시작 (헤더 제외)
for row in ws.iter_rows(min_row=2, min_col=4, max_col=4):  # 성적 열만 순회
    for cell in row:
        if cell.value is not None and cell.value >= 90:
            cell.fill = blue_fill  # 셀 배경을 파란색으로 변경

 

반복적으로 특정 범위의 셀들을 가져옵니다. 여기선 4열("성적")만 가져옵니다. 성적이 90점 이상인 경우를 필터링합니다. 그리고 해당 셀의 배경색을 파란색으로 설정합니다.

 

반응형