Python openpyxl 셀 서식 숫자 설정 방법 5가지

엑셀에서 셀 서식에 숫자를 적용할 때가 있죠. 이번엔 openpyxl 셀 서식 숫자 설정 방법을 알아보겠습니다.

openpyxl 셀 서식 숫자 설정 방법

셀 서식의 숫자 설정 방법에는 어떤 것들이 있을까요? 단순 숫자, 날짜, 통화, 시간, 백분율 등 다양한 표현 방식이 있습니다. Libre Office에서도 아래와 같이 셀의 숫자 서식을 설정할 수 있죠. openpyxl에서도 당연히 가능합니다.

그림 1. Libre Office Calc에서의 숫자 서식 설정 화면
그림 1. Libre Office Calc에서의 숫자 서식 설정 화면

그럼 바로 코드를 통해서 사용 방법을 알아보도록 하겠습니다.

from openpyxl import Workbook
from openpyxl.styles import numbers

wb = Workbook()
ws = wb.active

ws['A1'].value = 1234.5678
ws['A1'].number_format = numbers.FORMAT_NUMBER

ws['A2'].value = 1234.5678
ws['A2'].number_format = numbers.FORMAT_NUMBER_00

ws['A3'].value = 1234.5678
ws['A3'].number_format = numbers.BUILTIN_FORMATS[3]

ws['A4'].value = 1234.5678
ws['A4'].number_format = numbers.FORMAT_NUMBER_COMMA_SEPARATED1

ws['A5'].value = 1234.5678
ws['A5'].number_format = numbers.FORMAT_NUMBER_COMMA_SEPARATED2

ws.column_dimensions['A'].width = 15

wb.save("number_format_for_numbers.xlsx")
Python

위의 서식 사용에 대한 설명은 아래와 같습니다.

  • FORMAT_NUMBER
    • 서식: 0
    • 일반 숫자 형식은 소숫점을 표시하지 않고 정수형태로 표시합니다. 소숫점 첫째 자리에서 반올림처리 합니다.
  • FORMAT_NUMBER_00
    • 서식: 0.00
    • 소숫점 두 자리 숫자 형식으로 값의 소숫점 둘째 자리까지만 표시하도록 합니다. 셋째 자리의 숫자는 반올림하게 됩니다.
  • BUILTIN_FORMATS[3]
    • 서식: #,##0
    • 세 자리 단위로 콤마를 찍는 형식
  • FORMAT_NUMBER_COMMA_SEPARATED1
    • 서식: #,##0.00
    • 소숫점 둘째 자리까지 표시하며 세 자리 단위로 콤마를 찍는 형식
  • FORMAT_NUMBER_COMMA_SEPARATED2
    • 서식: #,##0.00_-
    • 소숫점 두 자리까지 표시하며 세 자리 단위로 콤마를 찍고 뒤에 음수부호 크기의 공백을 넣는 형식
    • 추가 정보: 언더라인(_) 뒤에 사용하는 글자의 폭만큼 공백이 추가됩니다. 숫자가 가장자리에 너무 붙지 않게 할 때 숫자 서식으로 사용할 수 있는 방법입니다. 본 예시에서는 _-를 적었기 때문에 A4 셀에서 – 문자의 폭만큼 여백이 오른쪽에 생긴 것을 확인할 수 있습니다.

위의 코드 사용에 따른 각 결과는 아래 그림과 같습니다.

그림 1. Python openpyxl 셀 서식 숫자 포맷 적용 결과
그림 1. Python openpyxl 셀 서식 숫자 포맷 적용 결과

관련 자료

openpyxl.styles.numbers 모듈 페이지와 openpyxl의 해당 코드를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment