在日常数据处理和报表生成中,我们经常需要向已有的 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.version2016 或 version2013,生成标准的 .xlsx 文件。如需保存为旧版 .xls 格式,可使用 version97to2003。
资源释放:操作完成后请调用 workbook.dispose() 释放资源,尤其在循环或批量处理场景中,以避免内存占用。
总结
添加 excel 工作表仅需几行代码:创建或加载 workbook,调用 worksheets.add() 方法,最后保存文件。该库提供了直观的 api 来管理工作表名称、位置和内容,且代码简洁、无 office 依赖,非常适合在自动化脚本、报表系统中快速生成多工作表 excel。
到此这篇关于python结合spire.xls for python实现高效添加与管理excel工作表的文章就介绍到这了,更多相关python添加与管理excel工作表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论