@startuml class Workbook { - sheetnames: List - active: Worksheet + save() } class Worksheet { - title: str - column_dimensions: DimensionHolder - freeze_panes: String + cell(row: int, col: int): Cell + cell(coord: str): Cell } class Cell { - value: Any - fill: PatternFill - font: Font - alignment: Alignment - border: Border - number_format: String } class PatternFill { - start_color: Color - end_color: Color - fill_type: String } class Font { - name: String - size: int - bold: Bool } class Alignment { - horizontal: String - vertical: String } class Border { - top: BorderLine - bottom: BorderLine - left: BorderLine - right: BorderLine } class BorderLine { - style: String - color: Color } class Color { - value: String } Workbook "1" --* "1..*" Worksheet : contains Worksheet "1" --* "1..*" Cell : contains Cell --o "1" PatternFill : fill Cell --o "1" Font : font Cell --o "1" Alignment : alignment Cell --o "1" Border : border Border --o "1" BorderLine : top Border --o "1" BorderLine : bottom Border --o "1" BorderLine : left Border --o "1" BorderLine : right Color --o "1" PatternFill : start_color Color --o "1" PatternFill : end_color Color --o "1" BorderLine : color @enduml