如何使用Pandas从Excel中只读取可见的工作表?

2024-06-12 10:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须从这些文件中随机获取一些要只读可见工作表的Excel表。在

一次考虑一个文件,假设我有Mapping_Doc.xls,它包含2个可见的工作表和2个隐藏的工作表。在

由于这里的工作表较少,我可以用如下名称解析它们:

代码:

xls = pd.ExcelFile('D:\\ExcelRead\\Mapping_Doc.xls')
print xls.sheet_names
df1 = xls.parse('Sheet1') #visible sheet
df2 = xls.parse('Sheet2') #visible sheet

输出:

^{pr2}$

我怎么能只得到可见的床单?在


Tags: 文件代码名称docnamesparsexlsexcel
2条回答

Pandas在内部使用xlrd库(如果您感兴趣,请查看excel.py源代码)。在

您可以通过访问每个工作表的visibility属性来确定可见性状态。根据xlrd source code中的注释,以下是可能的值:

  • 0=可见
  • 1=隐藏(可通过“用户格式”—“工作表”—“取消隐藏”取消隐藏)
  • 2=“非常隐藏”(只能通过VBA宏取消隐藏)。在

下面是一个示例,它读取包含两个工作表的Excel文件,第一个工作表可见,第二个工作表隐藏:

import pandas as pd

xls = pd.ExcelFile('test.xlsx')

sheets = xls.book.sheets()

for sheet in sheets:
    print(sheet.name, sheet.visibility)

输出:

^{pr2}$

回答是@ƘɌỈSƬƠƑ,对我也有帮助。我想补充几点。在

对于宏文件(.xlsm),可见性不可预测。可能是因为VBA代码在可见性设置之后。即使在Excel应用程序中打开文件时工作表是可见的,当xlrd读取时,可见性也不总是为0。在

检查下面的屏幕截图:

这是我在Excel中看到的。在

enter image description here

使用xlrd获取的可见性值

enter image description here

相关问题 更多 >