본문 바로가기

코딩/파이썬과 엑셀

openpyxl로 엑셀 다루기 018. Cell.number_format 속성으로 셀 서식 설정

python : openpyxl : cell.number_format

Cell.number_format 속성으로 셀 서식 설정

Cell 클래스의 number_format 속성을 통해 셀의 숫자 서식을 확인하거나 설정할 수 있다.

 

참고로 Cell 클래스는 StyleableObject 클래스를 상속하며, number_format 속성(프라퍼티)은 StyleableObject 클래스 내에 정의되어 있는 속성이다.

 

class StyleableObject(object):
    """
    Base class for styleble objects implementing proxy and lookup functions
    """
    # ...
    number_format = NumberFormatDescriptor()
    # ...

 

아래의 코드는 새로운 엑셀 파일을 생성한 후 datetime 클래스에 의해 생성된 날짜와 시간 정보를 A1 셀에 저장하는 코드이다. 이 경우 A1의 셀 서식은 "yyyy-mm-dd h:mm:ss"로 자동 설정된다.

 

# openpyxl 3.0.7

from openpyxl import Workbook
import datetime

wb = Workbook()
ws = wb.active

ws['A1'].value = datetime.datetime(2021, 12, 31)

print(datetime.datetime(2021, 12, 31))
print(ws['A1'].number_format)

wb.save('sample.xlsx')

 

cell.number_format 설정 값 출력

 

A1 셀에 저장되는 값

 

아래의 코드와 같이 A2 셀의 number_format 속성 값을 변경하면, 셀 상에 표시되는 날짜 정보도 변경됨을 확인할 수 있다.

 

# openpyxl 3.0.7

from openpyxl import Workbook
import datetime

wb = Workbook()
ws = wb.active

ws['A1'].value = datetime.datetime(2021, 12, 31)

print(datetime.datetime(2021, 12, 31))
print(ws['A1'].number_format)

ws['A2'].value = datetime.datetime(2021, 12, 31)
ws['A2'].number_format = 'yy-mm-dd'

wb.save('sample.xlsx')

 

cell.number_format 속성 값 변경