在现代企业办公中,excel 表格是处理和展示数据的核心工具。从销售数据统计到财务报表生成,再到项目进度跟踪,结构化的表格不仅能提高数据可读性,还能让报表显得更专业。然而,当面对大量数据或需要生成定期报表时,手动创建表格并设置样式不仅耗时,还容易出错。而 python 拥有强大的文档处理能力,通过编程实现 excel 表格自动化创建和样式应用,既可以保证数据准确性,也可以大幅提升工作效率。
本文将使用 free spire.xls for python 展示如何在 excel 中创建表格(listobject),并应用各种内置表格样式,包括浅色、中等和深色样式系列,以及如何配置表格的总计行、行条纹和列条纹等高级功能,结合实际业务场景的数据示例,帮助你快速掌握 excel 表格自动化技能。
1. 环境准备与库安装
首先需要安装 free spire.xls for python:
pip install spire.xls.free
安装完成后,我们可以开始创建 excel 工作簿并准备数据。下面是一个创建 excel 文件的简单示例:
from spire.xls import workbook
# 创建一个新的工作簿
workbook = workbook()
sheet = workbook.worksheets[0]
sheet.name = "员工数据"
# 保存初始文件
workbook.savetofile("employeedata.xlsx")
workbook.dispose()
print("excel 文件已创建:employeedata.xlsx")说明:workbook 对象代表整个 excel 文件,worksheets[0] 获取第一个工作表。这里我们创建了一个名为"员工数据"的工作表,为后续写入数据和创建表格做好准备。
注意:新建的excel工作簿有三个默认的工作表,sheet1、sheet2、sheet3,可根据需要直接读取编辑或清除后重新创建。
2. 在 excel 中写入业务数据
假设我们正在准备一份员工信息报表,包含员工编号、姓名、部门、职位和薪资等信息。我们可以在代码中直接生成数据:
from spire.xls import workbook
workbook = workbook()
sheet = workbook.worksheets[0]
sheet.name = "员工数据"
# 写入表头
headers = ["员工编号", "姓名", "部门", "职位", "薪资"]
for col, header in enumerate(headers, start=1):
sheet.range[1, col].text = header
# 写入示例数据
employee_data = [
["e001", "张三", "销售部", "销售经理", 15000],
["e002", "李四", "销售部", "销售专员", 8000],
["e003", "王五", "技术部", "技术总监", 25000],
["e004", "赵六", "技术部", "软件工程师", 12000],
["e005", "钱七", "财务部", "财务经理", 18000],
["e006", "孙八", "财务部", "会计", 9000],
["e007", "周九", "人事部", "人事经理", 16000],
["e008", "吴十", "人事部", "招聘专员", 7500],
]
for row, data in enumerate(employee_data, start=2):
for col, value in enumerate(data, start=1):
if isinstance(value, str):
sheet.range[row, col].value = value
else:
sheet.range[row, col].numbervalue = value
# 自动调整列宽
sheet.range.autofitcolumns()
workbook.savetofile("employeedata.xlsx")
workbook.dispose()
print("业务数据已写入 excel 文件")工作表预览:

说明:
这里我们模拟了8名员工的人事信息,涵盖不同部门和职位,更贴近实际业务场景,便于创建有意义的表格。
3. 创建基础表格并应用浅色样式
表格(listobject)是 excel 中用于管理和格式化数据的强大工具。我们可以将数据区域转换为表格,并应用内置样式:
from spire.xls import workbook, tablebuiltinstyles
workbook = workbook()
workbook.loadfromfile("employeedata.xlsx")
sheet = workbook.worksheets[0]
# 创建表格(listobject),指定数据区域
sheet.listobjects.create("员工信息表", sheet.range[1, 1, 9, 5])
# 应用浅色样式
sheet.listobjects[0].builtintablestyle = tablebuiltinstyles.tablestylelight9
workbook.savetofile("employeetable_light.xlsx")
workbook.dispose()
print("基础表格创建完成,已应用浅色样式")工作表预览:

说明:
sheet.listobjects.create()方法创建一个新的表格对象,第一个参数是表格名称,第二个参数是数据区域范围。tablebuiltinstyles.tablestylelight9是 excel 内置的浅色样式之一,适合简洁的表格展示。- 表格会自动添加筛选按钮,方便数据筛选和排序。
4. 应用中等样式并配置表格选项
中等样式系列提供了更丰富的颜色和格式选项,我们可以结合表格功能进行更细致的配置:
from spire.xls import workbook, tablebuiltinstyles
workbook = workbook()
workbook.loadfromfile("employeedata.xlsx")
sheet = workbook.worksheets[0]
# 创建表格
sheet.listobjects.create("员工信息表", sheet.range[1, 1, 9, 5])
# 应用中等样式
sheet.listobjects[0].builtintablestyle = tablebuiltinstyles.tablestylemedium9
# 显示行条纹(隔行变色)
sheet.listobjects[0].showtablestylerowstripes = true
# 显示列条纹
sheet.listobjects[0].showtablestylecolumnstripes = true
workbook.savetofile("employeetable_medium.xlsx")
workbook.dispose()
print("表格创建完成,已应用中等样式和条纹配置")工作表预览:

说明:
tablebuiltinstyles.tablestylemedium9提供了更醒目的颜色方案,适合需要突出数据的场景。showtablestylerowstripes和showtablestylecolumnstripes属性控制行和列的条纹显示,有助于提高表格的可读性。- 条纹样式会自动隔行或隔列应用不同的背景色,使数据更易于阅读。
5. 应用深色样式并配置总计行
深色样式系列提供了更强烈的视觉效果,适合需要突出重点数据的场景。同时,我们可以配置表格的总计行功能:
from spire.xls import workbook, tablebuiltinstyles, exceltotalscalculation
workbook = workbook()
workbook.loadfromfile("employeedata.xlsx")
sheet = workbook.worksheets[0]
# 创建表格
sheet.listobjects.create("员工信息表", sheet.range[1, 1, 9, 5])
# 应用深色样式
sheet.listobjects[0].builtintablestyle = tablebuiltinstyles.tablestyledark9
# 显示总计行
sheet.listobjects[0].displaytotalrow = true
# 设置总计行的标签
sheet.listobjects[0].columns[0].totalsrowlabel = "总计"
# 设置各列的计算方式
sheet.listobjects[0].columns[1].totalscalculation = exceltotalscalculation.none # 姓名列不计算
sheet.listobjects[0].columns[2].totalscalculation = exceltotalscalculation.none # 部门列不计算
sheet.listobjects[0].columns[3].totalscalculation = exceltotalscalculation.none # 职位列不计算
sheet.listobjects[0].columns[4].totalscalculation = exceltotalscalculation.sum # 薪资列求和
workbook.savetofile("employeetable_dark.xlsx")
workbook.dispose()
print("表格创建完成,已应用深色样式和总计行")工作表预览:

说明:
tablebuiltinstyles.tablestyledark9提供了深色背景,适合需要强调数据的场景。displaytotalrow属性控制是否显示总计行。totalsrowlabel设置第一列总计行的标签文本。totalscalculation枚举值控制每列的计算方式,包括sum(求和)、average(平均值)、count(计数)等。- 总计行会自动计算数值列的总和,大大简化了数据分析工作。
6. 创建带筛选功能的表格
表格的筛选功能是 excel 表格的重要特性之一,我们可以通过代码自动启用:
from spire.xls import workbook, tablebuiltinstyles
workbook = workbook()
workbook.loadfromfile("employeedata.xlsx")
sheet = workbook.worksheets[0]
# 创建表格,使用动态范围
sheet.listobjects.create("员工信息表", sheet.range[1, 1, sheet.lastrow, sheet.lastcolumn])
# 应用样式
sheet.listobjects[0].builtintablestyle = tablebuiltinstyles.tablestylelight11
# 表格默认启用筛选功能,无需额外配置
workbook.savetofile("employeetable_filter.xlsx")
workbook.dispose()
print("带筛选功能的表格创建完成")工作表预览:

说明:
- 使用
sheet.lastrow和sheet.lastcolumn可以动态获取数据的实际范围,适合数据量不确定的场景。 - 表格创建后会自动在表头添加筛选下拉按钮,用户可以点击进行数据筛选。
- 筛选功能使得数据管理和分析更加便捷,特别适合大型数据集。
7. 关键类、方法与属性总结
在前面的章节中,我们展示了如何使用 free spire.xls for python 创建表格并应用各种样式。从技术实现角度来看,表格创建和样式设置的核心流程可以总结为以下几个关键步骤:
python excel 表格创建步骤总结
- 准备数据将业务数据写入 excel 工作表。数据应包含表头和数据行,格式规范,便于转换为表格。
- 创建表格对象使用
sheet.listobjects.create()方法创建表格对象,指定表格名称和数据区域范围。 - 应用表格样式通过
builtintablestyle属性选择内置样式,包括浅色、中等和深色三个系列。 - 配置表格选项设置
showtablestylerowstripes、showtablestylecolumnstripes、displaytotalrow等属性,自定义表格外观和功能。 - 配置总计行使用
totalsrowlabel和totalscalculation属性设置总计行的标签和计算方式。 - 保存文件使用
workbook.savetofile()将生成的表格保存到指定文件。
关键类、方法与属性
| 类 / 方法 / 属性 | 说明 |
|---|---|
workbook | excel 工作簿对象,支持创建、加载和保存文件 |
workbook.loadfromfile() | 从本地文件加载 excel 工作簿 |
workbook.savetofile() | 保存 excel 文件到指定路径 |
worksheet | 表示单个工作表,是操作数据和表格的主体对象 |
sheet.listobjects.create() | 在工作表中创建新的表格(listobject)对象 |
sheet.listobjects[0] | 获取工作表中的第一个表格对象 |
listobject.builtintablestyle | 设置表格的内置样式 |
tablebuiltinstyles | 枚举类,提供所有内置表格样式选项 |
listobject.showtablestylerowstripes | 控制是否显示行条纹 |
listobject.showtablestylecolumnstripes | 控制是否显示列条纹 |
listobject.displaytotalrow | 控制是否显示总计行 |
listobject.columns[].totalsrowlabel | 设置指定列总计行的标签文本 |
listobject.columns[].totalscalculation | 设置指定列总计行的计算方式 |
exceltotalscalculation | 枚举类,提供总计行计算选项(sum、average、count等) |
sheet.lastrow | 获取工作表中最后一行的行号 |
sheet.lastcolumn | 获取工作表中最后一列的列号 |
内置表格样式系列
free spire.xls for python 提供了三个主要的内置表格样式系列:
| 样式系列 | 特点 | 适用场景 |
|---|---|---|
| light 系列 | 浅色背景,简洁清新 | 日常报表、数据清单 |
| medium 系列 | 中等色彩,平衡美观 | 业务分析、管理报表 |
| dark 系列 | 深色背景,突出重点 | 演示文稿、重要数据展示 |
每个系列包含多个样式选项(如 tablestylelight1 到 tablestylelight21),可以根据实际需求选择最合适的样式。
通过理解上述关键类、方法和属性,你可以灵活地创建各种类型的表格,并根据业务需求进行精细定制。掌握这些技术细节,能让你在实际项目中快速生成高质量、可读性强的 excel 报表,同时保持代码简洁和可维护性。
总结
本文以实际业务数据为例,展示了如何使用 free spire.xls for python 在 excel 中创建表格并应用各种样式,包括浅色、中等和深色样式系列,以及如何配置表格的总计行、行条纹、列条纹和筛选功能。通过编程方式创建和格式化表格,不仅避免了手动操作的繁琐和易错问题,还能轻松应对批量报告和复杂数据管理需求。
掌握这一技能后,你可以将数据报表生成完全自动化,从而节省时间,提高效率,并为数据分析和决策提供可靠的支持。结合 free spire.xls 的其他功能,如条件格式、数据验证和图表操作,可以进一步打造智能化的 excel 自动化工作流,让企业的数据价值发挥到最大。
以上就是使用python在excel文档中创建表格并应用表格样式的详细内容,更多关于python excel创建表格并应用样式的资料请关注代码网其它相关文章!
发表评论