파이썬 코드로 셀의 값을 변경하는 방법
이번 수업에서는 openpyxl
을 활용해 다양한 방식으로 셀 값을 수정하고, 셀 서식을 변경하는 방법을 알아보겠습니다.
시트 내 특정 셀의 값을 수정하는 방법
셀의 값을 수정할 때는 새로운 입력값을 할당하면 됩니다.
예를 들어, B1 셀의 값을 100으로 변경하려면 다음과 같이 하면 됩니다.
B1셀의 값을 수정하기
ws['B1'] = 100
또는 이전 수업에서 소개한 cell
메서드를 활용해 ws.cell(row=행번호, column=열번호)
를 사용할 수 있습니다.
특정 패턴에 따라 여러 셀 한 번에 수정하기
여러 셀에 특정 패턴에 따라 데이터를 입력해야 하는 경우, 아래와 같이 반복문을 활용할 수 있습니다.
여러 셀 한 번에 수정하기
# B열에 1부터 10까지의 값 입력
for i in range(1, 11):
ws[f'B{i}'] = str(i * 100) + 'km'
이 예시에서는 B1부터 B10까지의 셀에 100부터 1000까지의 값과 'km'을 붙여 입력합니다.
또는 아래와 같이 1번째 행의 1열부터 10열까지의 셀에 1부터 10까지의 값을 입력할 수도 있습니다.
여러 셀 한 번에 수정하기
# 1행에 1부터 10까지의 값 입력
for i in range(1, 11):
ws.cell(row=1, column=i, value=str(i) + "번째")
이를 응용하면 행과 열 모두에 패턴화된 데이터를 자동으로 입력할 수 있습니다.
여러 셀 한 번에 수정하기
# 2중 for 반복문으로 1부터 100까지 입력 (5열x20행)
for i in range(1, 21):
for j in range(1, 6):
ws.cell(row=i, column=j, value=(i - 1) * 5 + j)
조건에 따라 셀 데이터 수정하기
조건문을 활용하면 특정 조건에 따라 셀 데이터를 수정할 수 있습니다.
아래 코드는 값이 5보다 큰 셀의 값을 'Large'로 변경하고, 그렇지 않은 경우 'Small'로 변경합니다.
조건에 따라 셀 데이터 수정하기
# 값이 5보다 큰 셀의 값을 'Large'로 변경
for i in range(1, 11):
if ws[f'B{i}'].value > 5:
ws[f'B{i}'] = 'Large'
else:
ws[f'B{i}'] = 'Small'
# 수정된 내용 저장
wb.save('output_file.xlsx')
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!