跳转至

字体样式

本页面介绍如何使用字体样式。

基本字体设置

字体名称和大小

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)

下一步