python - 如何在不加载整个文件的情况下从 XLS 文件中获取工作表名称?

标签 python excel pandas xlrd

我目前正在使用 pandas 读取 Excel 文件并将其工作表名称呈现给用户,以便他可以选择他想使用的工作表。问题是文件非常大(70 列 x 65k 行),在笔记本上加载最多需要 14 秒(CSV 文件中的相同数据需要 3 秒)。

我在 panda 中的代码是这样的:

xls = pandas.ExcelFile(path)
sheets = xls.sheet_names

我之前尝试过 xlrd,但得到了类似的结果。这是我的 xlrd 代码:

xls = xlrd.open_workbook(path)
sheets = xls.sheet_names

那么,谁能提出一种比读取整个文件更快的方法来从 Excel 文件中检索工作表名称?

最佳答案

您可以使用 xlrd库并使用“on_demand=True”标志打开工作簿,以便不会自动加载工作表。

您可以通过类似于 pandas 的方式检索工作表名称:

import xlrd
xls = xlrd.open_workbook(r'<path_to_your_excel_file>', on_demand=True)
print xls.sheet_names() # <- remeber: xlrd sheet_names is a function, not a property

关于python - 如何在不加载整个文件的情况下从 XLS 文件中获取工作表名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12250024/

相关文章:

python - 通过字典有效地替换 Pandas 系列中的值

python - 在 django 中安全地从 POST 或 GET 检索数据

excel - SUMIF 单元格不是公式

excel - 在 Excel 加载项中包含 "ThisWorkbook"代码

python - 用 pandas 计算每月的支出总额

python - Pandas Groupby 基于 2 个日期列表分组的独特计数

python - 如何在 Python 中以相反的顺序读取 CSV 文件?

python - 在不修改sys.path或第三方软件包的情况下,在Python软件包中导入供应商依赖性

vba - 打开文件夹和子文件夹中的工作簿并更新每个

python - 合并两个不同的日期时间列以形成一个序列