跳转至

基础示例

本页面包含Symphra Excel的基础使用示例。

示例1: Hello World

最简单的示例 - 创建一个包含"Hello World"的Excel文件。

from symphra_excel import Workbook

# 创建工作簿
wb = Workbook()
sheet = wb.create_worksheet("Hello")

# 写入内容
sheet.set_cell_value("A1", "Hello, Symphra Excel!")

# 保存
wb.save("hello_world.xlsx")
wb.close()

print("创建成功!")

示例2: 简单表格

创建一个包含表头和数据的简单表格。

from symphra_excel import Workbook
from symphra_excel.styles import PredefinedStyles

wb = Workbook()
sheet = wb.create_worksheet("学生成绩")

# 表头
headers = ["姓名", "数学", "英语", "总分"]
for col_idx, header in enumerate(headers):
    cell = f"{chr(65+col_idx)}1"
    sheet.set_cell_value(cell, header)
    sheet.apply_style(cell, PredefinedStyles.header_style())

# 数据
students = [
    ["张三", 95, 88, 183],
    ["李四", 76, 82, 158],
    ["王五", 88, 91, 179],
]

for row_idx, student in enumerate(students, start=2):
    for col_idx, value in enumerate(student):
        sheet.set_cell_value(f"{chr(65+col_idx)}{row_idx}", value)

wb.save("students.xlsx")
wb.close()

示例3: 使用样式

应用各种样式到单元格。

from symphra_excel import Workbook, CellStyle
from symphra_excel.styles import Color, BorderStyle

wb = Workbook()
sheet = wb.create_worksheet("样式示例")

# 创建不同样式
title_style = CellStyle()
title_style.set_font(name="微软雅黑", size=16, bold=True, color=Color.DARK_BLUE)
title_style.set_alignment(horizontal="center")

header_style = CellStyle()
header_style.set_font(bold=True, color=Color.WHITE)
header_style.set_background_color(Color.DARK_BLUE)
header_style.set_border(BorderStyle.THIN, Color.BLACK)

data_style = CellStyle()
data_style.set_border(BorderStyle.THIN, Color.GRAY)

# 应用样式
sheet.set_cell_value("A1", "销售报表")
sheet.merge_cells("A1:D1")
sheet.apply_style("A1", title_style)

headers = ["产品", "数量", "单价", "总额"]
for col_idx, header in enumerate(headers):
    cell = f"{chr(65+col_idx)}2"
    sheet.set_cell_value(cell, header)
    sheet.apply_style(cell, header_style)

data = [["苹果", 100, 5, 500], ["香蕉", 150, 3, 450]]
for row_idx, row_data in enumerate(data, start=3):
    for col_idx, value in enumerate(row_data):
        cell = f"{chr(65+col_idx)}{row_idx}"
        sheet.set_cell_value(cell, value)
        sheet.apply_style(cell, data_style)

wb.save("styled_report.xlsx")
wb.close()

示例4: 多工作表

创建包含多个工作表的工作簿。

from symphra_excel import Workbook

wb = Workbook()

# 创建三个月的工作表
months = ["一月", "二月", "三月"]
for month in months:
    sheet = wb.create_worksheet(month)
    sheet.set_cell_value("A1", f"{month}销售数据")
    sheet.set_cell_value("A2", "日期")
    sheet.set_cell_value("B2", "销售额")

    # 添加示例数据
    for day in range(1, 6):
        sheet.set_cell_value(f"A{day+2}", f"{day}日")
        sheet.set_cell_value(f"B{day+2}", day * 1000)

wb.save("quarterly_report.xlsx")
wb.close()

示例5: 数字格式

设置不同的数字显示格式。

from symphra_excel import Workbook, CellStyle

wb = Workbook()
sheet = wb.create_worksheet("数字格式")

# 设置说明
formats = [
    ("普通数字", 1234.567, None),
    ("两位小数", 1234.567, "0.00"),
    ("千分位", 1234567, "#,##0"),
    ("百分比", 0.856, "0.00%"),
    ("货币", 1234.56, "¥#,##0.00"),
    ("科学计数", 1234567890, "0.00E+00"),
]

for row_idx, (desc, value, fmt) in enumerate(formats, start=1):
    sheet.set_cell_value(f"A{row_idx}", desc)
    sheet.set_cell_value(f"B{row_idx}", value)

    if fmt:
        style = CellStyle()
        style.set_number_format(fmt)
        sheet.apply_style(f"B{row_idx}", style)

wb.save("number_formats.xlsx")
wb.close()

示例6: 合并单元格

创建包含合并单元格的表格。

from symphra_excel import Workbook, CellStyle
from symphra_excel.styles import Color

wb = Workbook()
sheet = wb.create_worksheet("合并示例")

# 标题 - 合并A1:D1
title_style = CellStyle()
title_style.set_font(size=16, bold=True)
title_style.set_alignment(horizontal="center", vertical="center")
title_style.set_background_color(Color.LIGHT_BLUE)

sheet.set_cell_value("A1", "年度销售报告")
sheet.merge_cells("A1:D1")
sheet.apply_style("A1", title_style)

# 分组表头
sheet.set_cell_value("A2", "第一季度")
sheet.merge_cells("A2:B2")
sheet.set_cell_value("C2", "第二季度")
sheet.merge_cells("C2:D2")

# 子表头
headers = ["一月", "二月", "三月", "四月"]
for col_idx, header in enumerate(headers):
    sheet.set_cell_value(f"{chr(65+col_idx)}3", header)

wb.save("merged_cells.xlsx")
wb.close()

示例7: 批量数据写入

高效地写入大量数据。

from symphra_excel import Workbook

wb = Workbook()
sheet = wb.create_worksheet("大数据")

# 表头
sheet.set_cell_value("A1", "编号")
sheet.set_cell_value("B1", "名称")
sheet.set_cell_value("C1", "值")

# 批量写入1000行数据
for i in range(1000):
    row = i + 2
    sheet.set_cell_value(f"A{row}", i + 1)
    sheet.set_cell_value(f"B{row}", f"Item_{i+1}")
    sheet.set_cell_value(f"C{row}", (i + 1) * 100)

wb.save("large_data.xlsx")
wb.close()
print("已写入1000行数据")

示例8: 条件格式化

根据数据值应用不同样式。

from symphra_excel import Workbook, CellStyle
from symphra_excel.styles import Color

wb = Workbook()
sheet = wb.create_worksheet("成绩单")

# 样式定义
excellent = CellStyle()
excellent.set_background_color(Color.LIGHT_GREEN)

good = CellStyle()
good.set_background_color(Color.LIGHT_YELLOW)

poor = CellStyle()
poor.set_background_color(Color.LIGHT_RED)

# 数据
sheet.set_cell_value("A1", "姓名")
sheet.set_cell_value("B1", "分数")

students = [
    ("张三", 95),
    ("李四", 78),
    ("王五", 55),
    ("赵六", 88),
]

for row_idx, (name, score) in enumerate(students, start=2):
    sheet.set_cell_value(f"A{row_idx}", name)
    sheet.set_cell_value(f"B{row_idx}", score)

    # 根据分数应用不同颜色
    if score >= 90:
        sheet.apply_style(f"B{row_idx}", excellent)
    elif score >= 60:
        sheet.apply_style(f"B{row_idx}", good)
    else:
        sheet.apply_style(f"B{row_idx}", poor)

wb.save("conditional_format.xlsx")
wb.close()

示例9: 行列设置

设置行高和列宽。

from symphra_excel import Workbook

wb = Workbook()
sheet = wb.create_worksheet("行列设置")

# 设置列宽
sheet.set_column_width("A", 20)  # A列宽度20
sheet.set_column_width("B", 30)  # B列宽度30
sheet.set_column_width("C", 15)  # C列宽度15

# 设置行高
sheet.set_row_height(1, 30)  # 第1行高度30
sheet.set_row_height(2, 25)  # 第2行高度25

# 写入数据
sheet.set_cell_value("A1", "这是一个较长的文本内容")
sheet.set_cell_value("B1", "这是一个更长的文本内容示例")
sheet.set_cell_value("C1", "短文本")

wb.save("row_column_sizes.xlsx")
wb.close()

示例10: 使用上下文管理器

推荐的资源管理方式。

from symphra_excel import Workbook
from symphra_excel.styles import PredefinedStyles

# 使用with语句自动管理资源
with Workbook() as wb:
    sheet = wb.create_worksheet("数据")

    # 写入数据
    sheet.set_cell_value("A1", "标题")
    sheet.apply_style("A1", PredefinedStyles.title_style())

    for i in range(10):
        sheet.set_cell_value(f"A{i+2}", f"数据 {i+1}")

    wb.save("context_manager.xlsx")
# 自动关闭和清理资源

运行所有示例

将以上示例保存为examples.py并运行:

python examples.py

将会生成多个Excel文件,演示各种功能。

下一步