如何用 Python 读取 Excel 工作表名称

在数据工程和办公自动化场景中,读取 Excel 文件前通常需要先获取其工作表清单,以便了解文件结构、确定数据所在位置,或批量遍历多表执行统一处理。本文介绍如何使用 Free Spire.XLS for Python 免费库完成这一操作。

环境准备

bash 复制代码
pip install Spire.Xls.Free

该库支持 .xls(Excel 97-2003)和 .xlsx(Excel 2007+)两种格式,无需安装 Microsoft Office。

获取所有工作表名称

核心 API 非常简单:Workbook.Worksheets 是一个工作表集合,遍历即可;每个 Worksheet 对象通过 .Name 属性返回其名称。

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 实例并加载文件

workbook = Workbook()

workbook.LoadFromFile("测试.xlsx")


# 遍历所有工作表,输出名称

names = []

for sheet in workbook.Worksheets:

names.append(sheet.Name)


print(names)  # 例如:['报告', '目标对比', '实际完成', '总结', '备注']

`workbook.Dispose()`
`
`

Worksheets 集合包含工作簿中所有工作表,包括隐藏的工作表。如果只需要名称列表,可以用列表推导式进一步简化:

python 复制代码
names = [sheet.Name for sheet in workbook.Worksheets]

仅获取隐藏工作表的名称

某些场景下需要单独处理隐藏工作表,例如审计文件结构或恢复误隐藏的数据表。通过 Worksheet.Visibility 属性可以判断工作表是否为隐藏状态,该属性与 WorksheetVisibility.Hidden 枚举值比较即可。

python 复制代码
from spire.xls import *
from spire.xls.common import *

workbook = Workbook()

workbook.LoadFromFile("测试.xlsx")


hidden_names = [

sheet.Name

for sheet in workbook.Worksheets

if sheet.Visibility == WorksheetVisibility.Hidden

]


print(hidden_names)  # 例如:['总结', '备注']

`workbook.Dispose()`
`
`

免费版限制说明

Free Spire.XLS for Python 在功能上足够完成工作表名称读取等基础操作,但需要注意其免费版的边界:对 .xls 格式的读写,每个工作簿最多支持 5 个工作表、每个工作表最多 200 行;如果处理 .xlsx 格式,则不触发这一限制。对于工作表数量较多的大型文件,建议优先使用 .xlsx 格式。

资源管理

使用完 Workbook 对象后,建议显式调用 workbook.Dispose() 释放内存资源,尤其在批量处理多个文件时,这一点尤为重要。

与其他方案的简单对比

方案 获取表名方式 安装体积 是否需要 Office
Free Spire.XLS for sheet in workbook.Worksheets 中等 否
openpyxl wb.sheetnames 轻量 否
pandas pd.ExcelFile(path).sheet_names 较重(含 numpy 依赖) 否

如果项目中已经使用了 pandas 进行数据分析,直接用 pd.ExcelFile().sheet_names 是最省事的方案;openpyxl 在纯读取表名时性能不错。Free Spire.XLS 的优势在于它同时覆盖读写和格式操作,如果后续需要对工作表进行重命名、复制或格式调整,可以沿用同一套 API,减少依赖切换。

小结

提取 Excel 工作表名称是一个轻量但高频的操作。Free Spire.XLS for Python 通过 Worksheet.Name 和 Worksheet.Visibility 两个属性,分别覆盖了"获取全部表名"和"筛选隐藏表名"两种常见需求,代码量极少。在实际工程中,建议结合项目已有的 Excel 处理方案选择工具,避免引入不必要的依赖。