Python结合Spire.XLS for Python实现高效添加与管理Excel工作表

 更新时间:2026年04月14日 11:52:25   作者:咕白m625  
在日常数据处理和报表生成中,我们经常需要向已有的 Excel 文件添加新的工作表或者动态创建包含多个工作表的 Excel 文件,下面我们就来看看Python如何使用Spire.XLS for Python实现高效添加与管理Excel工作表吧

在日常数据处理和报表生成中,我们经常需要向已有的 Excel 文件添加新的工作表(Worksheet),或者动态创建包含多个工作表的 Excel 文件。本文将介绍如何使用免费库 Free Spire.XLS for Python 通过简洁代码实现 Excel 工作表的新建、批量添加、位置调整、删除与查重等核心操作

安装所需库

pip install Spire.Xls.Free

基础用法:新建 Excel 并添加工作表

下面的示例创建一个新的工作簿,删除默认工作表,自定义工作表名称并写入基础数据,是最常用的基础场景。

from spire.xls import *

# 创建 Workbook 对象
workbook = Workbook()

# 删除默认生成的第一个工作表(可选)
workbook.Worksheets.Clear()

# 添加第一个工作表
sheet1 = workbook.Worksheets.Add("销售数据")
sheet1.Range["A1"].Text = "月份"
sheet1.Range["B1"].Text = "销售额"

# 保存文件
workbook.SaveToFile("添加工作表.xlsx", FileFormat.Version2016)
workbook.Dispose()

批量添加多个空白工作表

使用 CreateEmptySheets 方法可以一次性创建多个空白工作表(该方法会清空原有的所有工作表)。

from spire.xls import *

workbook = Workbook()

# 创建 3 个空白工作表(原有工作表将被清空)
sheetCount = 3
workbook.CreateEmptySheets(sheetCount)

# 保存结果文件
workbook.SaveToFile("多工作表示例.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

向现有 Excel 文件添加工作表

更常见的场景是打开一个已有的 Excel 文件,然后在末尾追加新的工作表。

from spire.xls import *

# 加载现有文件
workbook = Workbook()
workbook.LoadFromFile("年度报告.xlsx")

# 添加新工作表
new_sheet = workbook.Worksheets.Add("第四季度数据")
new_sheet.Range["A1"].Text = "季度"
new_sheet.Range["B1"].Text = "营收"

# 写入几行示例数据
for i in range(1, 4):
    new_sheet.Range[f"A{i+1}"].Text = f"Q{i}"
    new_sheet.Range[f"B{i+1}"].NumberValue = 10000 * i

# 保存(可覆盖原文件或另存为新文件)
workbook.SaveToFile("年度报告_更新.xlsx", FileFormat.Version2016)
workbook.Dispose()

进阶操作:移动位置和删除工作表

移动工作表顺序

通过工作表的 MoveWorksheet 方法可以调整其在工作簿中的位置。参数为目标索引(从 0 开始计数)。

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 将该工作表移动到索引 2 的位置(即第三个工作表)
sheet.MoveWorksheet(2)

注意:执行移动操作前需先加载或创建 workbook 对象。

删除工作表

支持按索引删除按表名删除两种方式:

# 按索引删除(删除第一个工作表)
workbook.Worksheets.RemoveAt(0)

# 按名称删除
worksheet = workbook.Worksheets["Sheet1"]
workbook.Worksheets.Remove(worksheet)

检查工作表是否存在

在自动化脚本中,为了避免因重复添加同名工作表而报错,可以封装一个检查函数:

def add_sheet_if_not_exists(workbook, sheet_name):
    for sheet in workbook.Worksheets:
        if sheet.Name == sheet_name:
            print(f"工作表 '{sheet_name}' 已存在")
            return None
    new_sheet = workbook.Worksheets.Add(sheet_name)
    print(f"成功添加工作表 '{sheet_name}'")
    return new_sheet

# 使用示例
workbook = Workbook()
workbook.LoadFromFile("数据.xlsx")
add_sheet_if_not_exists(workbook, "新分析表")
workbook.SaveToFile("数据_更新.xlsx", FileFormat.Version2016)
workbook.Dispose()

注意事项

免费版限制:Free Spire.XLS for Python 的免费版本对每个工作表可处理的工作表数量和行数有一定限制。对于简单报表和小规模数据处理完全足够。若需要处理大量数据,建议评估其他开源方案(如 openpyxl)。

文件格式:保存时建议使用 FileFormat.Version2016Version2013,生成标准的 .xlsx 文件。如需保存为旧版 .xls 格式,可使用 Version97to2003

资源释放:操作完成后请调用 workbook.Dispose() 释放资源,尤其在循环或批量处理场景中,以避免内存占用。

总结

添加 Excel 工作表仅需几行代码:创建或加载 Workbook,调用 Worksheets.Add() 方法,最后保存文件。该库提供了直观的 API 来管理工作表名称、位置和内容,且代码简洁、无 Office 依赖,非常适合在自动化脚本、报表系统中快速生成多工作表 Excel。

到此这篇关于Python结合Spire.XLS for Python实现高效添加与管理Excel工作表的文章就介绍到这了,更多相关Python添加与管理Excel工作表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python自动化办公之文件整理脚本分享

    Python自动化办公之文件整理脚本分享

    这篇文章主要为大家分享了一个Python自动化办公脚本,可以实现文件整理,这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件,需要的可以收藏一下
    2023-08-08
  • Python实现轻松识别数百个快递单号

    Python实现轻松识别数百个快递单号

    当我们要寄出很多快递时,为了及时反馈物流信息,需要尽快将快递单号提取出来。这时用手动去识别真的太麻烦,所以本文将用Python实现轻松识别数百个快递单号,需要的可以参考一下
    2022-06-06
  • Python实现读取csv文件并进行排序

    Python实现读取csv文件并进行排序

    这篇文章主要为大家详细介绍了一个python简单案例并进行代码展示,本文的案例是利用pandas库实现读取csv文件并按照列的从小到大进行排序,需要的可以参考一下
    2023-02-02
  • Python使用eel模块创建GUI应用程序

    Python使用eel模块创建GUI应用程序

    在Python中,有许多库和模块可以用来创建图形用户界面(GUI)应用程序,其中一个流行的选择是使用eel模块,下面小编就来为大家详细介绍一下如何使用eel模块创建GUI应用程序吧
    2023-12-12
  • Python 流媒体播放器的实现(基于VLC)

    Python 流媒体播放器的实现(基于VLC)

    这篇文章主要介绍了Python 流媒体播放器的实现(基于VLC),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 解决python 读取excel时 日期变成数字并加.0的问题

    解决python 读取excel时 日期变成数字并加.0的问题

    这篇文章主要介绍了python 读取excel时, 日期变成数字并加.0的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 使用Python简单的实现树莓派的WEB控制

    使用Python简单的实现树莓派的WEB控制

    这篇文章主要介绍了使用Python简单的实现树莓派的WEB控制的相关资料,需要的朋友可以参考下
    2016-02-02
  • 浅谈Python小波分析库Pywavelets的一点使用心得

    浅谈Python小波分析库Pywavelets的一点使用心得

    这篇文章主要介绍了浅谈Python小波分析库Pywavelets的一点使用心得,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python代码实现一个AI多站点搜索神器

    Python代码实现一个AI多站点搜索神器

    在人工智能快速发展的今天,我们经常需要在多个AI平台上尝试同一个提示词,每次复制粘贴真的很麻烦,所以本文就来使用Python打造一个AI多站点搜索神器吧
    2025-03-03
  • django中ImageField的使用详解

    django中ImageField的使用详解

    这篇文章主要介绍了django中ImageField的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论