엑셀에서 셀 서식에 숫자를 적용할 때가 있죠. 이번엔 openpyxl 셀 서식 숫자 설정 방법을 알아보겠습니다.
목차
openpyxl 셀 서식 숫자 설정 방법
셀 서식의 숫자 설정 방법에는 어떤 것들이 있을까요? 단순 숫자, 날짜, 통화, 시간, 백분율 등 다양한 표현 방식이 있습니다. Libre Office에서도 아래와 같이 셀의 숫자 서식을 설정할 수 있죠. openpyxl에서도 당연히 가능합니다.
그럼 바로 코드를 통해서 사용 방법을 알아보도록 하겠습니다.
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 셀에서 – 문자의 폭만큼 여백이 오른쪽에 생긴 것을 확인할 수 있습니다.
위의 코드 사용에 따른 각 결과는 아래 그림과 같습니다.
관련 자료
openpyxl.styles.numbers 모듈 페이지와 openpyxl의 해당 코드를 참고했습니다.