对齐¶
本页面介绍如何使用对齐样式。
水平对齐¶
基本对齐¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
wb = Workbook()
sheet = wb.create_worksheet("对齐示例")
left_style = CellStyle()
left_style.set_alignment(horizontal="left")
sheet.set_cell_value("A1", "左对齐")
sheet.apply_style("A1", left_style)
center_style = CellStyle()
center_style.set_alignment(horizontal="center")
sheet.set_cell_value("A2", "居中对齐")
sheet.apply_style("A2", center_style)
right_style = CellStyle()
right_style.set_alignment(horizontal="right")
sheet.set_cell_value("A3", "右对齐")
sheet.apply_style("A3", right_style)
垂直对齐¶
垂直位置¶
top_style = CellStyle()
top_style.set_alignment(vertical="top")
sheet.set_cell_value("B1", "顶部对齐")
sheet.apply_style("B1", top_style)
sheet.set_row_height(1, 40)
middle_style = CellStyle()
middle_style.set_alignment(vertical="center")
sheet.set_cell_value("B2", "居中对齐")
sheet.apply_style("B2", middle_style)
sheet.set_row_height(2, 40)
bottom_style = CellStyle()
bottom_style.set_alignment(vertical="bottom")
sheet.set_cell_value("B3", "底部对齐")
sheet.apply_style("B3", bottom_style)
sheet.set_row_height(3, 40)
文本换行¶
自动换行¶
wrap_style = CellStyle()
wrap_style.set_alignment(wrap_text=True)
sheet.set_cell_value("C1", "这是一段很长的文本内容,需要自动换行显示")
sheet.apply_style("C1", wrap_style)
sheet.set_column_width("C", 15)
缩小字体以适应¶
shrink_style = CellStyle()
shrink_style.set_alignment(shrink_to_fit=True)
sheet.set_cell_value("C2", "缩小字体以适应单元格宽度")
sheet.apply_style("C2", shrink_style)
sheet.set_column_width("C", 10)
文本旋转¶
旋转角度¶
rotate_style = CellStyle()
rotate_style.set_alignment(text_rotation=45)
sheet.set_cell_value("D1", "旋转45度")
sheet.apply_style("D1", rotate_style)
rotate_style2 = CellStyle()
rotate_style2.set_alignment(text_rotation=90)
sheet.set_cell_value("D2", "竖排")
sheet.apply_style("D2", rotate_style2)
缩进¶
设置缩进¶
indent_style = CellStyle()
indent_style.set_alignment(indent=2)
sheet.set_cell_value("E1", "缩进文本")
sheet.apply_style("E1", indent_style)
完整示例¶
示例1: 表头样式¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
with Workbook() as wb:
sheet = wb.create_worksheet("表头")
header_style = CellStyle()
header_style.set_alignment(horizontal="center", vertical="center")
header_style.set_font(bold=True)
header_style.set_background_color("#4472C4")
header_style.set_font_color("#FFFFFF")
headers = ["编号", "姓名", "部门", "工资"]
for col_idx, header in enumerate(headers, start=1):
cell = f"{chr(64+col_idx)}1"
sheet.set_cell_value(cell, header)
sheet.apply_style(cell, header_style)
sheet.set_row_height(1, 25)
wb.save("header_alignment.xlsx")
示例2: 混合对齐¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
with Workbook() as wb:
sheet = wb.create_worksheet("混合对齐")
data = [
["产品", "左对齐"],
[12345, "右对齐"],
["描述", "居中对齐"],
]
alignments = ["left", "right", "center"]
for row_idx, (value, desc) in enumerate(data, start=1):
align_style = CellStyle()
align_style.set_alignment(horizontal=alignments[row_idx-1])
sheet.set_cell_value(f"A{row_idx}", value)
sheet.apply_style(f"A{row_idx}", align_style)
sheet.set_cell_value(f"B{row_idx}", desc)
wb.save("mixed_alignment.xlsx")
对齐选项¶
水平对齐选项¶
垂直对齐选项¶
最佳实践¶
✅ 推荐做法¶
header_style = CellStyle()
header_style.set_alignment(horizontal="center", vertical="center")
number_style = CellStyle()
number_style.set_alignment(horizontal="right")
text_style = CellStyle()
text_style.set_alignment(horizontal="left")
❌ 避免的做法¶
style = CellStyle()
style.set_alignment(horizontal="invalid")
style2 = CellStyle()
style2.set_alignment(text_rotation=999)