字体样式¶
本页面介绍如何使用字体样式。
基本字体设置¶
字体名称和大小¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
wb = Workbook()
sheet = wb.create_worksheet("字体示例")
style = CellStyle()
style.set_font(name="Arial", size=14)
sheet.set_cell_value("A1", "Hello")
sheet.apply_style("A1", style)
字体粗细和斜体¶
style = CellStyle()
style.set_font(bold=True, italic=True)
sheet.set_cell_value("A2", "粗斜体")
sheet.apply_style("A2", style)
字体颜色¶
设置字体颜色¶
from symphra_excel.styles import Color
style = CellStyle()
style.set_font_color("#FF0000")
sheet.set_cell_value("A3", "红色文字")
sheet.apply_style("A3", style)
style2 = CellStyle()
style2.set_font_color(Color.from_hex("#0000FF"))
sheet.set_cell_value("A4", "蓝色文字")
sheet.apply_style("A4", style2)
文字装饰¶
下划线¶
style = CellStyle()
style.set_font(underline="single")
sheet.set_cell_value("A5", "单下划线")
sheet.apply_style("A5", style)
style2 = CellStyle()
style2.set_font(underline="double")
sheet.set_cell_value("A6", "双下划线")
sheet.apply_style("A6", style2)
删除线¶
style = CellStyle()
style.set_font(strikethrough=True)
sheet.set_cell_value("A7", "删除线")
sheet.apply_style("A7", style)
上下标¶
设置上标和下标¶
style_super = CellStyle()
style_super.set_font(vert_align="superscript")
sheet.set_cell_value("A8", "X²")
sheet.apply_style("A8", style_super)
style_sub = CellStyle()
style_sub.set_font(vert_align="subscript")
sheet.set_cell_value("A9", "H₂O")
sheet.apply_style("A9", style_sub)
组合字体样式¶
完整字体配置¶
style = CellStyle()
style.set_font(
name="微软雅黑",
size=16,
bold=True,
italic=False,
underline="single",
color="#336699",
strikethrough=False
)
sheet.set_cell_value("A10", "完整配置")
sheet.apply_style("A10", style)
完整示例¶
示例1: 标题样式¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
with Workbook() as wb:
sheet = wb.create_worksheet("报表")
title_style = CellStyle()
title_style.set_font(
name="微软雅黑",
size=18,
bold=True,
color="#2E5C8A"
)
sheet.set_cell_value("A1", "2024年销售报表")
sheet.apply_style("A1", title_style)
wb.save("styled_report.xlsx")
示例2: 多级标题¶
from symphra_excel import Workbook
from symphra_excel.styles import CellStyle
with Workbook() as wb:
sheet = wb.create_worksheet("文档")
h1_style = CellStyle()
h1_style.set_font(name="黑体", size=16, bold=True)
h2_style = CellStyle()
h2_style.set_font(name="黑体", size=14, bold=True)
body_style = CellStyle()
body_style.set_font(name="宋体", size=11)
sheet.set_cell_value("A1", "第一章")
sheet.apply_style("A1", h1_style)
sheet.set_cell_value("A2", "1.1 概述")
sheet.apply_style("A2", h2_style)
sheet.set_cell_value("A3", "这是正文内容")
sheet.apply_style("A3", body_style)
wb.save("document.xlsx")
常用字体¶
中文字体¶
fonts = ["宋体", "黑体", "微软雅黑", "楷体", "仿宋"]
for idx, font_name in enumerate(fonts, start=1):
style = CellStyle()
style.set_font(name=font_name, size=12)
sheet.set_cell_value(f"A{idx}", f"{font_name}示例")
sheet.apply_style(f"A{idx}", style)
英文字体¶
fonts = ["Arial", "Calibri", "Times New Roman", "Courier New"]
for idx, font_name in enumerate(fonts, start=1):
style = CellStyle()
style.set_font(name=font_name, size=12)
sheet.set_cell_value(f"B{idx}", f"{font_name} Sample")
sheet.apply_style(f"B{idx}", style)
最佳实践¶
✅ 推荐做法¶
style = CellStyle()
style.set_font(name="微软雅黑", size=12)
title_style = CellStyle()
title_style.set_font(name="黑体", size=16, bold=True, color="#2E5C8A")
style_reusable = CellStyle()
style_reusable.set_font(name="Arial", size=11)
for row in range(1, 11):
sheet.apply_style(f"A{row}", style_reusable)
❌ 避免的做法¶
style = CellStyle()
style.set_font(name="不存在的字体", size=999)
for i in range(10000):
new_style = CellStyle()
new_style.set_font(size=12)
sheet.apply_style(f"A{i}", new_style)