본문 바로가기

코딩/파이썬과 엑셀

[Python] openpyxl로 엑셀 파일 처리 007. Worksheet(시트)의 탭 색상 설정

▶ Worksheet(시트)의 탭 색상 설정

python : openpyxl : worksheet 탭 색상

 

openpyxl로도 Worksheet(시트)의 탭 색상을 설정할 수 있다.

 

worksheet 탭

▶ Worksheet.sheet_properties.tabColor 속성 사용

Worksheet 클래스의 sheet_properties.tabColor 속성을 사용하면 Worksheet의 탭 색상을 설정할 수 있다.

 

아래의 코드에서 처럼 Worksheet 객체인 worksheet의 sheet_properties.tabColor 속성에 문자열 'FFFF00'을 대입하면, 첫번째 시트 탭의 색상이 노란색으로 변경된다.

 

sheet_properties.tabColor 속성에 대입하는 문자열은 RGB (빛의 삼원색인 Red, Green, Blue)를 의미하는 16진수 값이다.

따라서 sheet_properties.tabColor 속성에 대입한 문자열 'FFFF00'은 Red=255=0xFF, Green=255=0xFF, Blue=0=0x0, 즉 노란색을 의미한다.

 

# python 3.9.5
# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()

worksheet = workbook.active
worksheet['A1'].value = 'Hello openpyxl'
worksheet.sheet_properties.tabColor = 'FFFF00'

worksheet2 = workbook.create_sheet()

workbook.save('sample.xlsx')
# workbook.close()

 

위의 코드를 실행한 결과 첫번째 시트의 탭 색상이 노란색으로 변경된 것을 볼 수 있다.

 

노란색으로 변경된 첫번째 시트 탭

▶ Worksheet 클래스의 sheet_properties.tabColor 속성은 어디서?

openpyxl 파이썬 패키지에서 Worksheet 클래스는 아래에서 알 수 있듯이 worksheet 모듈 (worksheet.py) 내에 정의되어 있다.

 

class openpyxl.worksheet.worksheet.Worksheet(parent, title=None)

 

openpyxl 패키지 내 worksheet 모듈이 위치해 있는 폴더

 

worksheet 모듈은 properties 모듈(properties.py)의 WorksheetProperties 클래스를 import한다.

 

from .properties import WorksheetProperties

 

WorksheetProperties 클래스에는 tabColor 클래스 변수가 정의되어 있다.

 

tabColor = ColorDescriptor(allow_none=True)

 

Worksheet 클래스의 객체가 생성될 때 Worksheet 생성자는 _setup 메서드를 호출하고,

 

def __init__(self, parent, title=None):
    _WorkbookChild.__init__(self, parent, title)
    self._setup()

 

_setup 메서드 내 self.sheet_properties 객체 변수에 WorksheetProperties 클래스의 객체가 저장된다.

 

self.sheet_properties = WorksheetProperties()

 

이러한 구조에 따라 Worksheet 객체는 sheet_properties.tabColor 속성 (객체 변수)을 가지게 된다.