▶ Worksheet(시트)의 탭 색상 설정
openpyxl로도 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)
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 속성 (객체 변수)을 가지게 된다.