66 lines
3.2 KiB
Python
66 lines
3.2 KiB
Python
|
#!/usr/bin/python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
# @version : 1.0
|
|||
|
# @Create Time : 2023/08/24 22:19
|
|||
|
# @File : excel_schema.py
|
|||
|
# @IDE : PyCharm
|
|||
|
# @desc :
|
|||
|
|
|||
|
|
|||
|
from pydantic import BaseModel, Field
|
|||
|
|
|||
|
|
|||
|
class AlignmentModel(BaseModel):
|
|||
|
horizontal: str = Field('center', description="水平对齐方式。可选值:'left'、'center'、'right'、'justify'、'distributed'")
|
|||
|
vertical: str = Field('center', description="垂直对齐方式。可选值:'top'、'center'、'bottom'、'justify'、'distributed'")
|
|||
|
textRotation: int = Field(0, description="文本旋转角度(以度为单位)。默认为 0。")
|
|||
|
wrapText: bool = Field(None, description="自动换行文本。设置为 True 时,如果文本内容超出单元格宽度,会自动换行显示。")
|
|||
|
shrinkToFit: bool = Field(
|
|||
|
None,
|
|||
|
description="缩小字体以适应单元格。设置为 True 时,如果文本内容超出单元格宽度,会自动缩小字体大小以适应。"
|
|||
|
)
|
|||
|
indent: int = Field(0, description="文本缩进级别。默认为 0。")
|
|||
|
relativeIndent: int = Field(0, description="相对缩进级别。默认为 0。")
|
|||
|
justifyLastLine: bool = Field(
|
|||
|
None,
|
|||
|
description="对齐换行文本的末尾行。设置为 True 时,如果设置了文本换行,末尾的行也会被对齐。"
|
|||
|
)
|
|||
|
readingOrder: int = Field(0, description="阅读顺序。默认为 0。")
|
|||
|
|
|||
|
class Config:
|
|||
|
title = "对齐设置模型"
|
|||
|
description = "用于设置单元格内容的对齐样式。"
|
|||
|
|
|||
|
|
|||
|
class FontModel(BaseModel):
|
|||
|
name: str = Field(None, description="字体名称")
|
|||
|
size: float = Field(None, description="字体大小(磅为单位)")
|
|||
|
bold: bool = Field(None, description="是否加粗")
|
|||
|
italic: bool = Field(None, description="是否斜体")
|
|||
|
underline: str = Field(None, description="下划线样式。可选值:'single'、'double'、'singleAccounting'、'doubleAccounting'")
|
|||
|
strikethrough: bool = Field(None, description="是否有删除线")
|
|||
|
outline: bool = Field(None, description="是否轮廓字体")
|
|||
|
shadow: bool = Field(None, description="是否阴影字体")
|
|||
|
condense: bool = Field(None, description="是否压缩字体")
|
|||
|
extend: bool = Field(None, description="是否扩展字体")
|
|||
|
vertAlign: str = Field(None, description="垂直对齐方式。可选值:'superscript'、'subscript'、'baseline'")
|
|||
|
color: dict = Field(None, description="字体颜色")
|
|||
|
scheme: str = Field(None, description="字体方案。可选值:'major'、'minor'")
|
|||
|
charset: int = Field(None, description="字符集编号")
|
|||
|
family: int = Field(None, description="字体族编号")
|
|||
|
|
|||
|
class Config:
|
|||
|
title = "字体设置模型"
|
|||
|
description = "用于设置单元格内容的字体样式"
|
|||
|
|
|||
|
|
|||
|
class PatternFillModel(BaseModel):
|
|||
|
start_color: str = Field("FFFFFF", description="起始颜色(RGB 值或颜色名称)")
|
|||
|
end_color: str = Field("FFFFFF", description="结束颜色(RGB 值或颜色名称)")
|
|||
|
fill_type: str = Field("solid", description="填充类型('none'、'solid'、'darkDown' 等)")
|
|||
|
|
|||
|
class Config:
|
|||
|
title = "填充模式设置模型"
|
|||
|
description = "单元格的填充模式设置"
|
|||
|
|