使用Python在Excel文档中创建表格并应用表格样式

 更新时间:2026年04月09日 09:23:37   作者:大丸子  
本文介绍了使用FreeSpire.XLS for Python在Excel中创建表格并应用各种内置样式的方法,通过编程实现数据的自动格式化,提升报表的专业性和效率,涵盖浅色、中等和深色样式系列,以及配置总计行、行条纹、列条纹和筛选功能,需要的朋友可以参考下

在现代企业办公中,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 文件")

工作表预览:

2. 在 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("基础表格创建完成,已应用浅色样式")

工作表预览:

3. 创建基础表格并应用浅色样式

说明

  • 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("表格创建完成,已应用中等样式和条纹配置")

工作表预览:

4. 应用中等样式并配置表格选项

说明

  • 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("表格创建完成,已应用深色样式和总计行")

工作表预览:

5. 应用深色样式并配置总计行

说明

  • 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("带筛选功能的表格创建完成")

工作表预览:

6. 创建带筛选功能的表格

说明

  • 使用 sheet.LastRow 和 sheet.LastColumn 可以动态获取数据的实际范围,适合数据量不确定的场景。
  • 表格创建后会自动在表头添加筛选下拉按钮,用户可以点击进行数据筛选。
  • 筛选功能使得数据管理和分析更加便捷,特别适合大型数据集。

7. 关键类、方法与属性总结

在前面的章节中,我们展示了如何使用 Free Spire.XLS for Python 创建表格并应用各种样式。从技术实现角度来看,表格创建和样式设置的核心流程可以总结为以下几个关键步骤:

Python Excel 表格创建步骤总结

  • 准备数据将业务数据写入 Excel 工作表。数据应包含表头和数据行,格式规范,便于转换为表格。
  • 创建表格对象使用 sheet.ListObjects.Create() 方法创建表格对象,指定表格名称和数据区域范围。
  • 应用表格样式通过 BuiltInTableStyle 属性选择内置样式,包括浅色、中等和深色三个系列。
  • 配置表格选项设置 ShowTableStyleRowStripesShowTableStyleColumnStripesDisplayTotalRow 等属性,自定义表格外观和功能。
  • 配置总计行使用 TotalsRowLabel 和 TotalsCalculation 属性设置总计行的标签和计算方式。
  • 保存文件使用 workbook.SaveToFile() 将生成的表格保存到指定文件。

关键类、方法与属性

类 / 方法 / 属性说明
WorkbookExcel 工作簿对象,支持创建、加载和保存文件
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创建表格并应用样式的资料请关注脚本之家其它相关文章!

相关文章

  • Django查询优化及ajax编码格式原理解析

    Django查询优化及ajax编码格式原理解析

    这篇文章主要介绍了Django查询优化及ajax编码格式原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python3 ID3决策树判断申请贷款是否成功的实现代码

    Python3 ID3决策树判断申请贷款是否成功的实现代码

    这篇文章主要介绍了Python3 ID3决策树判断申请贷款是否成功的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 使用python实现一个简单的图片爬虫

    使用python实现一个简单的图片爬虫

    在本文中,我们将学习如何使用Python创建一个简单的图片爬虫,我们将利用requests库来发送HTTP请求,BeautifulSoup库来解析HTML页面,以及os和shutil库来下载和保存图片,通过这个教程,你将学会如何爬取网页上的图片并保存到本地,需要的朋友可以参考下
    2024-02-02
  • pytorch 实现在预训练模型的 input上增减通道

    pytorch 实现在预训练模型的 input上增减通道

    今天小编就为大家分享一篇pytorch 实现在预训练模型的 input上增减通道,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python中filter函数的用法示例代码

    python中filter函数的用法示例代码

    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换,这篇文章主要介绍了python中filter函数的用法,需要的朋友可以参考下
    2022-12-12
  • 跟老齐学Python之永远强大的函数

    跟老齐学Python之永远强大的函数

    Python程序中的语句都会组织成函数的形式。通俗地说,函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字,这样,我们就可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句。
    2014-09-09
  • tensorflow 重置/清除计算图的实现

    tensorflow 重置/清除计算图的实现

    今天小编就为大家分享一篇tensorflow 重置/清除计算图的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 对django views中 request, response的常用操作详解

    对django views中 request, response的常用操作详解

    今天小编就为大家分享一篇对django views中 request, response的常用操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 深度学习之GPU,CUDA和cuDNN的理解

    深度学习之GPU,CUDA和cuDNN的理解

    Cuda和cudnn是支持NVIDIA支持GPU的两个库,分别用于高性能计算和深度神经网络计算的支持,下面这篇文章主要给大家介绍了关于深度学习之GPU,CUDA和cuDNN的理解,需要的朋友可以参考下
    2023-02-02
  • 解决nohup执行python程序log文件写入不及时的问题

    解决nohup执行python程序log文件写入不及时的问题

    今天小编就为大家分享一篇解决nohup执行python程序log文件写入不及时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论