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 = "单元格的填充模式设置"
|
||
|