如何用 Python 读取 Excel 工作表名称
在数据工程和办公自动化场景中,读取 Excel 文件前通常需要先获取其工作表清单,以便了解文件结构、确定数据所在位置,或批量遍历多表执行统一处理。本文介绍如何使用 Free Spire.XLS for Python 免费库完成这一操作。
环境准备
pip install Spire.Xls.Free
该库支持 .xls(Excel 97-2003)和 .xlsx(Excel 2007+)两种格式,无需安装 Microsoft Office。
获取所有工作表名称
核心 API 非常简单:Workbook.Worksheets 是一个工作表集合,遍历即可;每个 Worksheet 对象通过 .Name 属性返回其名称。
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 集合包含工作簿中所有工作表,包括隐藏的工作表。如果只需要名称列表,可以用列表推导式进一步简化:
names = [sheet.Name for sheet in workbook.Worksheets]
仅获取隐藏工作表的名称
某些场景下需要单独处理隐藏工作表,例如审计文件结构或恢复误隐藏的数据表。通过 Worksheet.Visibility 属性可以判断工作表是否为隐藏状态,该属性与 WorksheetVisibility.Hidden 枚举值比较即可。
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 处理方案选择工具,避免引入不必要的依赖。
原文地址: https://www.cveoy.top/t/topic/qHIr 著作权归作者所有。请勿转载和采集!